!import "base.tri" !Local !import "list.tri" !Local lazyBool = (thenK elseK cond : ((chosen : chosen t) (matchBool thenK elseK cond))) lazyList = (nilK consK xs : ((chosen : chosen t) (matchList nilK (h r : (_ : consK h r)) xs))) lazyMaybe = (noneK someK m : ((chosen : chosen t) (matchMaybe noneK (x : (_ : someK x)) m))) lazyResult = (errK okK result : ((chosen : chosen t) (matchResult (code rest : (_ : errK code rest)) (value rest : (_ : okK value rest)) result)))