Kind/book/IO.run.kind2
2024-03-01 20:40:31 -03:00

12 lines
392 B
Plaintext

IO.run
: ∀(A: *) ∀(x: (IO A)) (IO A)
= λA λx
let P = λx (IO A)
let print = λtext λthen
(HVM.print (IO A) text (IO.run A (then Unit.one)))
let load = λfile λthen
(HVM.load (IO A) file λs (IO.run A (then s)))
let save = λfile λdata λthen
(HVM.save (IO A) file data (IO.run A (then Unit.one)))
let done = λterm (IO.done A term)
(~x P print load save done)