push (\u1 -> (\u2 -> u1 : u2 Term)) name_1: | catchFail | | | push (\u1 -> (\u2 -> (\u3 -> (\u4 -> 'a' : ('b' : ('c' : ('d' : Term))))))) | | read ('a' ==) | | lift (\u1 -> (\u2 -> u1 u2)) | | read ('b' ==) | | lift (\u1 -> (\u2 -> u1 u2)) | | read ('c' ==) | | lift (\u1 -> (\u2 -> u1 u2)) | | read ('d' ==) | | lift (\u1 -> (\u2 -> u1 u2)) | | popFail | | ret | | loadInput | fail call name_1 lift (\u1 -> (\u2 -> u1 u2)) name_2: | catchFail | | | push (\u1 -> (\u2 -> (\u3 -> u1 : u2 u3))) | | call name_1 | | lift (\u1 -> (\u2 -> u1 u2)) | | call name_2 | | lift (\u1 -> (\u2 -> u1 u2)) | | popFail | | ret | | pushInput | lift Term | choices [(\u1 -> u1)] | | | push (\u1 -> u1) | | ret | | fail call name_2 lift (\u1 -> (\u2 -> u1 u2)) ret