Dear Hongwei, On Sun, Aug 30, 2020 at 10:19 AM Hongwei Xi <gmh...@gmail.com> wrote: > Well, you did not prove that the one returned is the same as the one borrowed > :)
Umm... Do you mean following eats original `a@l`: ```ats extern fun shared_make{a:vt@ype}{l:addr} (a@l | ptr l): shared(a) ``` and the following introduces another one? ```ats extern fun shared_unref{a:vt@ype} (shared(a)): [l:addr][c:int] (option_v(a@l, c <= 1) | ptr l, int c) ``` I would like to take more hints. If I prove they have same `l:addr` in `shared(a:vt@ype)`, ATS2 accepts them as the same? ```ats absvtype shared(a:vt@ype) = [l:addr] (a@l | ptr l) ``` Best regards, -- Kiwamu Okabe at METASEPI DESIGN -- You received this message because you are subscribed to the Google Groups "ats-lang-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to ats-lang-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/ats-lang-users/CAEvX6dnOUutwnBSnTKEQFkBn%2BCJschqfbxfpJgafr9tM4%3Dypgw%40mail.gmail.com.