pushValue (\u1 -> (\u2 -> u1 Term)) : | catchException "fail" | | | pushValue (\u1 -> (\u2 -> (\u3 -> 'r' : u2 u3))) | | read ('r' ==) | | lift2Value (\u1 -> (\u2 -> u1 u2)) | | call | | lift2Value (\u1 -> (\u2 -> u1 u2)) | | popException "fail" | | ret | | pushInput | lift2Value Term | choicesBranch [(\u1 -> u1)] | | | pushValue (\u1 -> u1) | | ret | | raiseException "fail" call 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"