!import "../../lib/base.tri" !Local !import "../../lib/list.tri" !Local !import "../../lib/io.tri" !Local -- readFile returns a Result. matchResult branches on ok / err. -- Run with --allow-read PATH or --unsafe-io. safeRead = (path : bind (readFile path) (result : matchResult (err rest : pure "ERROR: Unable to read file") (contents rest : pure contents) result)) main = io (safeRead "demos/interactionTrees/greet.tri")