pushValue (\u1 -> (\u2 -> (\u3 -> u1 : u2 Term))) catchException "fail" | pushValue (\u1 -> (\u2 -> (\u3 -> (\u4 -> 'a' : ('b' : ('c' : ('d' : Term))))))) | read ('a' ==) | lift2Value (\u1 -> (\u2 -> u1 u2)) | read ('b' ==) | lift2Value (\u1 -> (\u2 -> u1 u2)) | read ('c' ==) | lift2Value (\u1 -> (\u2 -> u1 u2)) | read ('d' ==) | lift2Value (\u1 -> (\u2 -> u1 u2)) | popException "fail" | lift2Value (\u1 -> (\u2 -> u1 u2)) | : | | lift2Value (\u1 -> (\u2 -> u1 u2)) | | : | | | lift2Value (\u1 -> (\u2 -> u1 u2)) | | | ret | | catchException "fail" | | | | | catchException "fail" | | | | | | | pushInput | | | | read (\u1 -> Term) | | | | popValue | | | | popException "fail" | | | | loadInput | | | | raiseException "fail" | | | | | | loadInput | | | pushValue Term | | | popException "fail" | | | refJoin | | | | pushInput | | lift2Value Term | | choicesBranch [(\u1 -> u1)] | | | | | raiseException "fail" | | | | raiseException "fail" | catchException "fail" | | | pushValue (\u1 -> (\u2 -> (\u3 -> u1 : u2 u3))) | | call | | lift2Value (\u1 -> (\u2 -> u1 u2)) | | call | | lift2Value (\u1 -> (\u2 -> u1 u2)) | | popException "fail" | | refJoin | | pushInput | lift2Value Term | choicesBranch [(\u1 -> u1)] | | | pushValue (\u1 -> u1) | | refJoin | | raiseException "fail" loadInput raiseException "fail"