catchException "fail" | catchException "fail" | | | pushInput | | read (\u1 -> Term) | | popValue | | popException "fail" | | loadInput | | raiseException "fail" | | loadInput | pushValue Term | popException "fail" | ret pushInput lift2Value Term choicesBranch [(\u1 -> u1)] | raiseException "fail" raiseException "fail"