Because tracking effects is no longer planned in ATS3, we need to think about how to handle effects incurred by calling external functions.
We can introduce an abstrace linear VIEW IO: absview IO Say 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 introduce absview I and O and proof functions prfun IO_split : IO -> (I, O) prfun IO_unsplit: (I, O) -> IO If 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. -- 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/2cfa5625-c50a-46d9-9042-0d8ffa6d0831%40googlegroups.com.