tricu

An interpreted language for exploring Tree Calculus
Log | Files | Refs | README | LICENSE

protocol.tri (895B)


      1 !import base as B
      2 !import io_v2 as IO
      3 !import handlers as H
      4 !export capabilities
      5 !export handledCapabilities
      6 !export inspectWriter
      7 !export inspectLazyBind
      8 !export inspectLazyScope
      9 !export inspectFuture
     10 !export unsupported
     11 !export invalidHeader
     12 !export retired
     13 
     14 capabilities = IO.io IO.capabilities
     15 handledCapabilities = IO.io <| H.runIOV2 (H.liftIO IO.capabilities)
     16 inspectWriter path = IO.io <| IO.bind IO.currentScope
     17   (owner : IO.inspect (IO.openWriter owner path))
     18 diverge x = diverge x
     19 inspectLazyBind seed = IO.io <| IO.inspect (B.pair 1 (diverge seed))
     20 inspectLazyScope seed = IO.io <| IO.inspect (IO.scope (diverge seed))
     21 inspectFuture seed = IO.io <| IO.inspect (IO.request "future-tcp" 1 "connect" (diverge seed))
     22 unsupported seed = IO.io <| IO.request "future-tcp" 1 "connect" (diverge seed)
     23 invalidHeader = IO.io <| IO.request "file" 0 "open-reader" t
     24 retired = IO.io (B.pair 21 t)