1 pushValue (\u1 -> (\u2 -> u1 Term))
3 | catchException "fail"
5 | | pushValue (\u1 -> (\u2 -> (\u3 -> u1 : u2 u3)))
7 | | lift2Value (\u1 -> (\u2 -> u1 u2))
9 | | lift2Value (\u1 -> (\u2 -> u1 u2))
10 | | popException "fail"
15 | choicesBranch [(\u1 -> u1)]
17 | | pushValue (\u1 -> u1)
20 | raiseException "fail"
22 lift2Value (\u1 -> (\u2 -> u1 u2))
24 | lift2Value (\u1 -> (\u2 -> u1 u2))
28 | catchException "fail"
31 | | read (\u1 -> Term)
33 | | popException "fail"
35 | | raiseException "fail"
44 choicesBranch [(\u1 -> u1)]
46 | raiseException "fail"