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.

Reply via email to