Because tracking effects is no longer planned in ATS3, we need tothink about how to handle effects incurred by calling external functions.We can introduce an abstrace linear VIEW IO:absview IOSay a function foo needs to do IO. Then it has to have a proof of the view IO:fun foo(!IO | ...): ...This is just a monadic style of handing effects in Haskell.
IO is so-called because there is I and O in IO. So we may also introduceabsview I and Oand proof functionsprfun IO_split : IO -> (I, O)prfun IO_unsplit: (I, O) -> IOIf a function only does I but no O, then it only needs a proof of the I view:fun foo2 (!I | ...): ...Again, this is just a note put here as a reminder.
Even though the term is I/O, I don't think it's a useful distinction to separate I from O.
% spawn(Closure, IO0, IO) is true iff `IO0' denotes a list of I/O % transactions that is an interleaving of those performed by `Closure' % and those contained in `IO' - the list of transactions performed by % the continuation of spawn/3. % :- pred spawn(pred(io, io), io, io). :- mode spawn(pred(di, uo) is cc_multi, di, uo) is cc_multi.
Where 'cc_multi' stands for 'committed choice multideterminism'. There's a whole universe of possible outcomes, and, er, *something* will happen, and the program will stick with that outcome.
--
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-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ats-lang-users/d5118001-9937-4dba-9cae-8a644017b8e7%40googlegroups.com.
--
Dear Hongwei,
--
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-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ats-lang-users/CAEvX6d%3DJnwDYDzC4%3Dj--dcYqLh4AJYr2pqdtmBA2AioDqngH%3Dg%40mail.gmail.com.
--
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-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ats-lang-users/58633b60-e4fe-466e-8f84-329bc6499f30%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ats-lang-users/CAORbNRr5PN7ye6u1FgfWGKRfynmEhQq3hn3_TY2h%2BLb%2BffXjgA%40mail.gmail.com.
--
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-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ats-lang-users/e90611de-5efc-46e2-8d45-61db522c73f1n%40googlegroups.com.
--
You received this message because you are subscribed to a topic in the Google Groups "ats-lang-users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/ats-lang-users/HtsSq9thpk8/unsubscribe.
To unsubscribe from this group and all its topics, send an email to ats-lang-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ats-lang-users/af4c0df6-de79-4319-a716-d17a5a98625fn%40googlegroups.com.