catchFail | push (\u1 -> (\u2 -> (\u3 -> (\u4 -> 'a' : ('b' : ('c' : ('d' : Pure))))))) | 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