catchFail | push (const 'a') | read | lift ($) | popFail | ret pushInput lift Pure choices [id] | push (const 'b') | read | lift ($) | ret fail