push (\u1 -> (\u2 -> u1 Pure)) name_1: | catchFail | | | push (\u1 -> (\u2 -> (\u3 -> 'r' : u2 u3))) | | read ('r' ==) | | lift (\u1 -> (\u2 -> u1 u2)) | | call name_1 | | lift (\u1 -> (\u2 -> u1 u2)) | | popFail | | ret | | pushInput | lift Pure | choices [(\u1 -> u1)] | | | push (\u1 -> u1) | | ret | | fail call name_1 lift (\u1 -> (\u2 -> u1 u2)) join_55: | lift (\u1 -> (\u2 -> u1 u2)) | ret catchFail | catchFail | | | pushInput | | read (\u1 -> Pure) | | pop | | popFail | | loadInput | | fail | | loadInput | push unit | popFail | refJoin join_55 pushInput lift Pure choices [(\u1 -> u1)] | fail fail