let name
  minReads=4
  mayRaise=[ExceptionFailure]
  alwaysRaise=[]
  freeRegs=[]
| catch ExceptionFailure
|   minReads=4
|   mayRaise=[ExceptionFailure]
|   alwaysRaise=[]
|   freeRegs=[]
| | <catchScope>
| | | pushValue (\x_0 -> \x_1 -> \x_2 -> \x_3 -> (GHC.Types.:) 'a' ((GHC.Types.:) 'b' ((GHC.Types.:) 'c' ((GHC.Types.:) 'd' GHC.Types.[]))))
| | |   minReads=4
| | |   mayRaise=[ExceptionFailure]
| | |   alwaysRaise=[]
| | |   freeRegs=[]
| | | comment "satisfy ((GHC.Classes.==) 'a')"
| | |   minReads=4
| | |   mayRaise=[ExceptionFailure]
| | |   alwaysRaise=[]
| | |   freeRegs=[]
| | | read ((GHC.Classes.==) 'a')
| | |   minReads=4
| | |   mayRaise=[ExceptionFailure]
| | |   alwaysRaise=[]
| | |   freeRegs=[]
| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
| | |   minReads=3
| | |   mayRaise=[ExceptionFailure]
| | |   alwaysRaise=[]
| | |   freeRegs=[]
| | | comment "satisfy ((GHC.Classes.==) 'b')"
| | |   minReads=3
| | |   mayRaise=[ExceptionFailure]
| | |   alwaysRaise=[]
| | |   freeRegs=[]
| | | read ((GHC.Classes.==) 'b')
| | |   minReads=3
| | |   mayRaise=[ExceptionFailure]
| | |   alwaysRaise=[]
| | |   freeRegs=[]
| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
| | |   minReads=2
| | |   mayRaise=[ExceptionFailure]
| | |   alwaysRaise=[]
| | |   freeRegs=[]
| | | comment "satisfy ((GHC.Classes.==) 'c')"
| | |   minReads=2
| | |   mayRaise=[ExceptionFailure]
| | |   alwaysRaise=[]
| | |   freeRegs=[]
| | | read ((GHC.Classes.==) 'c')
| | |   minReads=2
| | |   mayRaise=[ExceptionFailure]
| | |   alwaysRaise=[]
| | |   freeRegs=[]
| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
| | |   minReads=1
| | |   mayRaise=[ExceptionFailure]
| | |   alwaysRaise=[]
| | |   freeRegs=[]
| | | comment "satisfy ((GHC.Classes.==) 'd')"
| | |   minReads=1
| | |   mayRaise=[ExceptionFailure]
| | |   alwaysRaise=[]
| | |   freeRegs=[]
| | | read ((GHC.Classes.==) 'd')
| | |   minReads=1
| | |   mayRaise=[ExceptionFailure]
| | |   alwaysRaise=[]
| | |   freeRegs=[]
| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
| | |   minReads=0
| | |   mayRaise=[]
| | |   alwaysRaise=[]
| | |   freeRegs=[]
| | | commit ExceptionFailure
| | |   minReads=0
| | |   mayRaise=[]
| | |   alwaysRaise=[]
| | |   freeRegs=[]
| | | ret
| | |   minReads=0
| | |   mayRaise=[]
| | |   alwaysRaise=[]
| | |   freeRegs=[]
| | <onException ExceptionFailure>
| | | loadInput
| | |   minReads=0
| | |   mayRaise=[ExceptionFailure]
| | |   alwaysRaise=[ExceptionFailure]
| | |   freeRegs=[]
| | | fail []
| | |   minReads=0
| | |   mayRaise=[ExceptionFailure]
| | |   alwaysRaise=[ExceptionFailure]
| | |   freeRegs=[]
pushValue (\x_0 -> \x_1 -> GHC.Show.show ((GHC.Types.:) x_0 x_1))
  minReads=4
  mayRaise=[ExceptionFailure]
  alwaysRaise=[]
  freeRegs=[]
call name
  minReads=4
  mayRaise=[ExceptionFailure]
  alwaysRaise=[]
  freeRegs=[]
lift2Value (\x_0 -> \x_1 -> x_0 x_1)
  minReads=0
  mayRaise=[ExceptionFailure]
  alwaysRaise=[]
  freeRegs=[]
pushValue (\x_0 -> x_0)
  minReads=0
  mayRaise=[ExceptionFailure]
  alwaysRaise=[]
  freeRegs=[]
newRegister reg
  minReads=0
  mayRaise=[ExceptionFailure]
  alwaysRaise=[]
  freeRegs=[]
iter loop
  minReads=0
  mayRaise=[ExceptionFailure]
  alwaysRaise=[]
  freeRegs=[reg]
| <ok>
| | pushValue (GHC.Types.:)
| |   minReads=4
| |   mayRaise=[ExceptionFailure]
| |   alwaysRaise=[]
| |   freeRegs=[reg]
| | call name
| |   minReads=4
| |   mayRaise=[ExceptionFailure]
| |   alwaysRaise=[]
| |   freeRegs=[reg]
| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
| |   minReads=0
| |   mayRaise=[]
| |   alwaysRaise=[]
| |   freeRegs=[reg]
| | pushValue (\x_0 -> \x_1 -> \x_2 -> x_1 (x_0 x_2))
| |   minReads=0
| |   mayRaise=[]
| |   alwaysRaise=[]
| |   freeRegs=[reg]
| | lift2Value (\x_0 -> \x_1 -> x_1 x_0)
| |   minReads=0
| |   mayRaise=[]
| |   alwaysRaise=[]
| |   freeRegs=[reg]
| | readRegister reg
| |   minReads=0
| |   mayRaise=[]
| |   alwaysRaise=[]
| |   freeRegs=[reg]
| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
| |   minReads=0
| |   mayRaise=[]
| |   alwaysRaise=[]
| |   freeRegs=[reg]
| | writeRegister reg
| |   minReads=0
| |   mayRaise=[]
| |   alwaysRaise=[]
| |   freeRegs=[reg]
| | jump loop
| |   minReads=0
| |   mayRaise=[]
| |   alwaysRaise=[]
| |   freeRegs=[]
| <ko>
| | comment "raiseAgainIfConsumed"
| |   minReads=0
| |   mayRaise=[ExceptionFailure]
| |   alwaysRaise=[]
| |   freeRegs=[reg]
| | saveInput
| |   minReads=0
| |   mayRaise=[ExceptionFailure]
| |   alwaysRaise=[]
| |   freeRegs=[reg]
| | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
| |                                                                j_1
| |                                                                _) -> i_0 GHC.Classes.== j_1)
| |   minReads=0
| |   mayRaise=[ExceptionFailure]
| |   alwaysRaise=[]
| |   freeRegs=[reg]
| | choicesBranch
| |   minReads=0
| |   mayRaise=[ExceptionFailure]
| |   alwaysRaise=[]
| |   freeRegs=[reg]
| | | <branch (\x_0 -> x_0)>
| | | | readRegister reg
| | | |   minReads=0
| | | |   mayRaise=[]
| | | |   alwaysRaise=[]
| | | |   freeRegs=[reg]
| | | | pushValue GHC.Types.[]
| | | |   minReads=0
| | | |   mayRaise=[]
| | | |   alwaysRaise=[]
| | | |   freeRegs=[]
| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
| | | |   minReads=0
| | | |   mayRaise=[]
| | | |   alwaysRaise=[]
| | | |   freeRegs=[]
| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
| | | |   minReads=0
| | | |   mayRaise=[]
| | | |   alwaysRaise=[]
| | | |   freeRegs=[]
| | | | ret
| | | |   minReads=0
| | | |   mayRaise=[]
| | | |   alwaysRaise=[]
| | | |   freeRegs=[]
| | | <default>
| | | | fail []
| | | |   minReads=0
| | | |   mayRaise=[ExceptionFailure]
| | | |   alwaysRaise=[ExceptionFailure]
| | | |   freeRegs=[]