>>(pf | !p) This does not work because type-checking is performed from left to right. So you need
let val x = !p in (pf | x) end On Tue, Dec 11, 2018 at 6:57 PM Scott Murphy <[email protected]> wrote: > Thank you so much. > So the binding with val A is what forces pf to be considered > consumed. > > I have tried: > fun{a:t@ype} > ptr_get0 {l:addr} (pf: a @ l | p: ptr l): (a @ l | a) = (pf|!p) > and seen the consumption error so many times but wasn't sure exactly what > consumption meant! > > > > On Tuesday, December 11, 2018 at 4:41:24 PM UTC-6, Richard wrote: >> >> Not sure if this is completely correct however, it typechecks >> >> extern fun {a:t@ype} >> ptr_get0 {l:addr} (pf: a @ l | p: ptr l): (a @ l | a) >> >> implement {a} ptr_get0 {l} (pf | p) = (pf | A) where { val A = !p } >> >> -- > 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 [email protected]. > To post to this group, send email to [email protected]. > Visit this group at https://groups.google.com/group/ats-lang-users. > To view this discussion on the web visit > https://groups.google.com/d/msgid/ats-lang-users/9689d6a2-2dfb-4110-b8e1-c8e616b35696%40googlegroups.com > <https://groups.google.com/d/msgid/ats-lang-users/9689d6a2-2dfb-4110-b8e1-c8e616b35696%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- 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 [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/ats-lang-users. To view this discussion on the web visit https://groups.google.com/d/msgid/ats-lang-users/CAPPSPLqsrTmZTBUwLiUzx1b4hacuT3NZ%2BU-zgbzD%3DPBxZ1TcMg%40mail.gmail.com.
