24 lines
589 B
Plaintext
24 lines
589 B
Plaintext
!import "../../lib/base.tri" !Local
|
|
!import "../../lib/list.tri" !Local
|
|
!import "../../lib/io.tri" !Local
|
|
|
|
-- Transform an IO result.
|
|
-- mapIO applies a pure function to the value produced by an action.
|
|
-- Run with --allow-read PATH or --unsafe-io.
|
|
|
|
safeRead = (path :
|
|
bind (readFile path)
|
|
(result :
|
|
matchResult
|
|
(err rest : pure "missing")
|
|
(contents rest : pure contents)
|
|
result))
|
|
|
|
shout = (path :
|
|
mapIO (safeRead path)
|
|
(text : append text "!!!"))
|
|
|
|
main = io (bind
|
|
(shout "demos/interactionTrees/greet.tri")
|
|
(text : putStrLn text))
|