catchFail
  <try>
  | push (const Haskell)
  | read
  | lift ($)
  | popFail
  | ret
  <handler>
    pushInput
    lift InstrPureSameOffset
    choices [id]
      <branch>
      | push (const Haskell)
      | read
      | lift ($)
      | ret
      <default>
        fail