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