let <hidden>
  minReads=(Right 0)
  mayRaise=[ExceptionFailure]
| catch ExceptionFailure
|   minReads=(Right 0)
|   mayRaise=[ExceptionFailure]
| | <ok>
| | | pushValue (\u1 -> (\u2 -> (\u3 -> u1 (u2 u3))))
| | |   minReads=(Right 1)
| | |   mayRaise=[ExceptionFailure]
| | | pushValue cons
| | |   minReads=(Right 1)
| | |   mayRaise=[ExceptionFailure]
| | | pushValue (\u1 -> (\u2 -> u1))
| | |   minReads=(Right 1)
| | |   mayRaise=[ExceptionFailure]
| | | pushValue 'r'
| | |   minReads=(Right 1)
| | |   mayRaise=[ExceptionFailure]
| | | lift2Value (\u1 -> (\u2 -> u1 u2))
| | |   minReads=(Right 1)
| | |   mayRaise=[ExceptionFailure]
| | | read ('r' ==)
| | |   minReads=(Right 1)
| | |   mayRaise=[ExceptionFailure]
| | | lift2Value (\u1 -> (\u2 -> u1 u2))
| | |   minReads=(Right 0)
| | |   mayRaise=[ExceptionFailure]
| | | lift2Value (\u1 -> (\u2 -> u1 u2))
| | |   minReads=(Right 0)
| | |   mayRaise=[ExceptionFailure]
| | | lift2Value (\u1 -> (\u2 -> u1 u2))
| | |   minReads=(Right 0)
| | |   mayRaise=[ExceptionFailure]
| | | call <hidden>
| | |   minReads=(Right 0)
| | |   mayRaise=[ExceptionFailure]
| | | lift2Value (\u1 -> (\u2 -> u1 u2))
| | |   minReads=(Right 0)
| | |   mayRaise=[]
| | | commit ExceptionFailure
| | |   minReads=(Right 0)
| | |   mayRaise=[]
| | | ret
| | |   minReads=(Right 0)
| | |   mayRaise=[]
| | <ko>
| | | pushInput
| | |   minReads=(Right 0)
| | |   mayRaise=[ExceptionFailure]
| | | lift2Value Term
| | |   minReads=(Right 0)
| | |   mayRaise=[ExceptionFailure]
| | | choicesBranch [(\u1 -> u1)]
| | |   minReads=(Right 0)
| | |   mayRaise=[ExceptionFailure]
| | | | <branch>
| | | | | pushValue (\u1 -> u1)
| | | | |   minReads=(Right 0)
| | | | |   mayRaise=[]
| | | | | ret
| | | | |   minReads=(Right 0)
| | | | |   mayRaise=[]
| | | | <default>
| | | | | fail []
| | | | |   minReads=(Left ExceptionFailure)
| | | | |   mayRaise=[ExceptionFailure]
pushValue Term
  minReads=(Right 0)
  mayRaise=[ExceptionFailure]
pushValue (\u1 -> (\u2 -> u1))
  minReads=(Right 0)
  mayRaise=[ExceptionFailure]
call <hidden>
  minReads=(Right 0)
  mayRaise=[ExceptionFailure]
pushValue Term
  minReads=(Right 0)
  mayRaise=[ExceptionFailure]
lift2Value (\u1 -> (\u2 -> u1 u2))
  minReads=(Right 0)
  mayRaise=[ExceptionFailure]
lift2Value (\u1 -> (\u2 -> u1 u2))
  minReads=(Right 0)
  mayRaise=[ExceptionFailure]
join <hidden>
  minReads=(Right 0)
  mayRaise=[]
| lift2Value (\u1 -> (\u2 -> u1 u2))
|   minReads=(Right 0)
|   mayRaise=[]
| lift2Value (\u1 -> (\u2 -> u1 u2))
|   minReads=(Right 0)
|   mayRaise=[]
| ret
|   minReads=(Right 0)
|   mayRaise=[]
catch ExceptionFailure
  minReads=(Right 0)
  mayRaise=[ExceptionFailure]
| <ok>
| | catch ExceptionFailure
| |   minReads=(Right 0)
| |   mayRaise=[]
| | | <ok>
| | | | pushInput
| | | |   minReads=(Left ExceptionFailure)
| | | |   mayRaise=[ExceptionFailure]
| | | | read (\u1 -> Term)
| | | |   minReads=(Left ExceptionFailure)
| | | |   mayRaise=[ExceptionFailure]
| | | | popValue
| | | |   minReads=(Left ExceptionFailure)
| | | |   mayRaise=[ExceptionFailure]
| | | | commit ExceptionFailure
| | | |   minReads=(Left ExceptionFailure)
| | | |   mayRaise=[ExceptionFailure]
| | | | loadInput
| | | |   minReads=(Left ExceptionFailure)
| | | |   mayRaise=[ExceptionFailure]
| | | | fail []
| | | |   minReads=(Left ExceptionFailure)
| | | |   mayRaise=[ExceptionFailure]
| | | <ko>
| | | | loadInput
| | | |   minReads=(Right 0)
| | | |   mayRaise=[]
| | | | pushValue Term
| | | |   minReads=(Right 0)
| | | |   mayRaise=[]
| | | | commit ExceptionFailure
| | | |   minReads=(Right 0)
| | | |   mayRaise=[]
| | | | refJoin <hidden>
| | | |   minReads=(Right 0)
| | | |   mayRaise=[]
| <ko>
| | pushInput
| |   minReads=(Left ExceptionFailure)
| |   mayRaise=[ExceptionFailure]
| | lift2Value Term
| |   minReads=(Left ExceptionFailure)
| |   mayRaise=[ExceptionFailure]
| | choicesBranch [(\u1 -> u1)]
| |   minReads=(Left ExceptionFailure)
| |   mayRaise=[ExceptionFailure]
| | | <branch>
| | | | fail [FailureEnd]
| | | |   minReads=(Left ExceptionFailure)
| | | |   mayRaise=[ExceptionFailure]
| | | <default>
| | | | fail []
| | | |   minReads=(Left ExceptionFailure)
| | | |   mayRaise=[ExceptionFailure]