push ((\x0 -> (\x1 -> (\x2 -> x0 (x1 x2)))) (((\x0 -> (\x1 -> (\x2 -> (x0 x2) x1))) (\x0 -> (\x1 -> x0 x1))) ((\x0 -> (\x1 -> x0)) 'b'))) (((\x0 -> (\x1 -> (\x2 -> x0 (x1 x2)))) (\x0 -> (\x1 -> (\x2 -> x0 (x1 x2))))) (((\x0 -> (\x1 -> (\x2 -> x0 (x1 x2)))) (\x0 -> (\x1 -> x0))) (((\x0 -> (\x1 -> (\x2 -> (x0 x2) x1))) (\x0 -> (\x1 -> x0 x1))) Pure))) name_1: | catchFail | | | push ((\x0 -> (\x1 -> (\x2 -> x0 (x1 x2)))) (\x0 -> (\x1 -> (\x2 -> x0 (x1 x2))))) (((\x0 -> (\x1 -> (\x2 -> x0 (x1 x2)))) cons) ((\x0 -> (\x1 -> x0)) 'a')) | | read | | lift (\x0 -> (\x1 -> x0 x1)) | | call name_1 | | lift (\x0 -> (\x1 -> x0 x1)) | | popFail | | ret | | pushInput | lift Pure | choices [id] | | | push (\x0 -> x0) | | ret | | fail call name_1 lift (\x0 -> (\x1 -> x0 x1)) read lift (\x0 -> (\x1 -> x0 x1)) ret