caledon-3.1.0.0: prelude/io.ncc
#include <strings.ncc>
#include <combinators.ncc>
---------------
-- builtins ---
---------------
defn putChar : char -> prop -- builtin
| putCharImp = [A] putChar A
-- for sequencing io actions
fixity left 1 ,
defn io : prop
| do = io
| , = io -> prop -> io
defn run : io -> prop
| runDo = run do
| runSeq = run (Av , Bv) <- run Av
<- Bv
defn readLine : (string -> io) -> prop -- builtin
| readLineImp = [Foo : string -> io] [A : string] readLine Foo <- run (Foo A)
----------------
--- printing ---
----------------
defn putStr : string -> prop
| putStr_Nil = putStr nil
| putStr_Cons = putStr (cons V L)
<- putChar V
<- putStr L
defn putStrLn : string -> prop
as \S . run $ do
, putStr S
, putChar '\n'