machine: improve comments
[haskell/symantic-parser.git] / test / Golden / Machine / G14.expected.txt
index 2d50a8bbdcaffd6ec6758796e2c848678b30d59f..c6b1afa2ad4b2ca39ee75c425a13adcec07ab1cb 100644 (file)
-pushValue (\u1 -> (\u2 -> (\u3 -> (\u4 -> (\u5 -> (\u6 -> u5))))))
-<hidden>:
+let <hidden>
+  minReads=(Right 0)
+  mayRaise=[]
+| catch ExceptionFailure
+|   minReads=(Right 0)
+|   mayRaise=[]
+| | <ok>
+| | | pushValue (\u1 -> (\u2 -> (\u3 -> u1 (u2 u3))))
+| | |   minReads=(Right 1)
+| | |   mayRaise=[ExceptionFailure]
+| | | pushValue (\u1 -> (\u2 -> (\u3 -> (u1 u3) u2)))
+| | |   minReads=(Right 1)
+| | |   mayRaise=[ExceptionFailure]
+| | | pushValue (\u1 -> (\u2 -> u1))
+| | |   minReads=(Right 1)
+| | |   mayRaise=[ExceptionFailure]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 1)
+| | |   mayRaise=[ExceptionFailure]
+| | | call <hidden>
+| | |   minReads=(Right 1)
+| | |   mayRaise=[ExceptionFailure]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | call <hidden>
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | 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 fromList []
+| | | | |   minReads=(Left ExceptionFailure)
+| | | | |   mayRaise=[ExceptionFailure]
+let <hidden>
+  minReads=(Right 0)
+  mayRaise=[]
+| catch ExceptionFailure
+|   minReads=(Right 0)
+|   mayRaise=[]
+| | <ok>
+| | | pushValue (\u1 -> (\u2 -> (\u3 -> u1 (u2 u3))))
+| | |   minReads=(Right 1)
+| | |   mayRaise=[ExceptionFailure]
+| | | pushValue (\u1 -> (\u2 -> (\u3 -> (u1 u3) u2)))
+| | |   minReads=(Right 1)
+| | |   mayRaise=[ExceptionFailure]
+| | | pushValue (\u1 -> (\u2 -> u1))
+| | |   minReads=(Right 1)
+| | |   mayRaise=[ExceptionFailure]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 1)
+| | |   mayRaise=[ExceptionFailure]
+| | | call <hidden>
+| | |   minReads=(Right 1)
+| | |   mayRaise=[ExceptionFailure]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | call <hidden>
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | 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 fromList []
+| | | | |   minReads=(Left ExceptionFailure)
+| | | | |   mayRaise=[ExceptionFailure]
+let <hidden>
+  minReads=(Right 0)
+  mayRaise=[]
+| catch ExceptionFailure
+|   minReads=(Right 0)
+|   mayRaise=[]
+| | <ok>
+| | | pushValue (\u1 -> (\u2 -> (\u3 -> u1 (u2 u3))))
+| | |   minReads=(Right 1)
+| | |   mayRaise=[ExceptionFailure]
+| | | pushValue (\u1 -> (\u2 -> (\u3 -> (u1 u3) u2)))
+| | |   minReads=(Right 1)
+| | |   mayRaise=[ExceptionFailure]
+| | | pushValue (\u1 -> (\u2 -> u1))
+| | |   minReads=(Right 1)
+| | |   mayRaise=[ExceptionFailure]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 1)
+| | |   mayRaise=[ExceptionFailure]
+| | | read Term
+| | |   minReads=(Right 1)
+| | |   mayRaise=[ExceptionFailure]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | call <hidden>
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | 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 fromList []
+| | | | |   minReads=(Left ExceptionFailure)
+| | | | |   mayRaise=[ExceptionFailure]
+let <hidden>
+  minReads=(Right 0)
+  mayRaise=[]
+| catch ExceptionFailure
+|   minReads=(Right 0)
+|   mayRaise=[]
+| | <ok>
+| | | pushValue (\u1 -> (\u2 -> (\u3 -> u1 (u2 u3))))
+| | |   minReads=(Right 18)
+| | |   mayRaise=[]
+| | | pushValue (\u1 -> (\u2 -> (\u3 -> (u1 u3) u2)))
+| | |   minReads=(Right 18)
+| | |   mayRaise=[]
+| | | pushValue (\u1 -> (\u2 -> u1))
+| | |   minReads=(Right 18)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 18)
+| | |   mayRaise=[]
+| | | pushValue (\u1 -> (\u2 -> u1))
+| | |   minReads=(Right 18)
+| | |   mayRaise=[]
+| | | pushValue (\u1 -> u1)
+| | |   minReads=(Right 18)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 18)
+| | |   mayRaise=[]
+| | | pushValue (\u1 -> (\u2 -> u1))
+| | |   minReads=(Right 18)
+| | |   mayRaise=[]
+| | | pushValue (\u1 -> u1)
+| | |   minReads=(Right 18)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 18)
+| | |   mayRaise=[]
+| | | pushValue (\u1 -> (\u2 -> u1))
+| | |   minReads=(Right 18)
+| | |   mayRaise=[]
+| | | pushValue (\u1 -> u1)
+| | |   minReads=(Right 18)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 18)
+| | |   mayRaise=[]
+| | | pushValue (\u1 -> (\u2 -> u1))
+| | |   minReads=(Right 18)
+| | |   mayRaise=[]
+| | | pushValue (\u1 -> u1)
+| | |   minReads=(Right 18)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 18)
+| | |   mayRaise=[]
+| | | catch ExceptionFailure
+| | |   minReads=(Right 18)
+| | |   mayRaise=[]
+| | | | <ok>
+| | | | | pushValue cons
+| | | | |   minReads=(Right 18)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | |   minReads=(Right 18)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | pushValue 'f'
+| | | | |   minReads=(Right 18)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 18)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | read ('f' ==)
+| | | | |   minReads=(Right 18)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 17)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 17)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | pushValue cons
+| | | | |   minReads=(Right 17)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | |   minReads=(Right 17)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | pushValue 'u'
+| | | | |   minReads=(Right 17)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 17)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | read ('u' ==)
+| | | | |   minReads=(Right 17)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 16)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 16)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | pushValue cons
+| | | | |   minReads=(Right 16)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | |   minReads=(Right 16)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | pushValue 'n'
+| | | | |   minReads=(Right 16)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 16)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | read ('n' ==)
+| | | | |   minReads=(Right 16)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 15)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 15)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | pushValue cons
+| | | | |   minReads=(Right 15)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | |   minReads=(Right 15)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | pushValue 'c'
+| | | | |   minReads=(Right 15)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 15)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | read ('c' ==)
+| | | | |   minReads=(Right 15)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 14)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 14)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | pushValue cons
+| | | | |   minReads=(Right 14)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | |   minReads=(Right 14)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | pushValue 't'
+| | | | |   minReads=(Right 14)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 14)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | read ('t' ==)
+| | | | |   minReads=(Right 14)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 13)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 13)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | pushValue cons
+| | | | |   minReads=(Right 13)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | |   minReads=(Right 13)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | pushValue 'i'
+| | | | |   minReads=(Right 13)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 13)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | read ('i' ==)
+| | | | |   minReads=(Right 13)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 12)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 12)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | pushValue cons
+| | | | |   minReads=(Right 12)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | |   minReads=(Right 12)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | pushValue 'o'
+| | | | |   minReads=(Right 12)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 12)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | read ('o' ==)
+| | | | |   minReads=(Right 12)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 11)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 11)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | pushValue cons
+| | | | |   minReads=(Right 11)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | |   minReads=(Right 11)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | pushValue 'n'
+| | | | |   minReads=(Right 11)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 11)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | read ('n' ==)
+| | | | |   minReads=(Right 11)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 10)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 10)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | pushValue Term
+| | | | |   minReads=(Right 10)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 10)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 10)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 10)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 10)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 10)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 10)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 10)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 10)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | commit ExceptionFailure
+| | | | |   minReads=(Right 10)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 10)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | call <hidden>
+| | | | |   minReads=(Right 10)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 10)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 10)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | call <hidden>
+| | | | |   minReads=(Right 10)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 8)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 8)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | |   minReads=(Right 8)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | |   minReads=(Right 8)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | pushValue (\u1 -> u1)
+| | | | |   minReads=(Right 8)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 8)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | call <hidden>
+| | | | |   minReads=(Right 8)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 6)
+| | | | |   mayRaise=[]
+| | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | |   minReads=(Right 6)
+| | | | |   mayRaise=[]
+| | | | | pushValue (\u1 -> u1)
+| | | | |   minReads=(Right 6)
+| | | | |   mayRaise=[]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 6)
+| | | | |   mayRaise=[]
+| | | | | call <hidden>
+| | | | |   minReads=(Right 6)
+| | | | |   mayRaise=[]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 2)
+| | | | |   mayRaise=[]
+| | | | | join <hidden>
+| | | | |   minReads=(Right 6)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | |   minReads=(Right 6)
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | |   minReads=(Right 6)
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | |   minReads=(Right 6)
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | call <hidden>
+| | | | | |   minReads=(Right 6)
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | |   minReads=(Right 4)
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | |   minReads=(Right 4)
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | |   minReads=(Right 4)
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | call <hidden>
+| | | | | |   minReads=(Right 4)
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | |   minReads=(Right 0)
+| | | | | |   mayRaise=[]
+| | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | |   minReads=(Right 0)
+| | | | | |   mayRaise=[]
+| | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | |   minReads=(Right 0)
+| | | | | |   mayRaise=[]
+| | | | | | call <hidden>
+| | | | | |   minReads=(Right 0)
+| | | | | |   mayRaise=[]
+| | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | |   minReads=(Right 0)
+| | | | | |   mayRaise=[]
+| | | | | | commit ExceptionFailure
+| | | | | |   minReads=(Right 0)
+| | | | | |   mayRaise=[]
+| | | | | | ret
+| | | | | |   minReads=(Right 0)
+| | | | | |   mayRaise=[]
+| | | | | catch ExceptionFailure
+| | | | |   minReads=(Right 0)
+| | | | |   mayRaise=[]
+| | | | | | <ok>
+| | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | |   minReads=(Right 2)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | pushValue Term
+| | | | | | |   minReads=(Right 2)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | |   minReads=(Right 2)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | |   minReads=(Right 2)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | pushValue (\u1 -> u1)
+| | | | | | |   minReads=(Right 2)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | |   minReads=(Right 2)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | |   minReads=(Right 2)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | |   minReads=(Right 2)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | pushValue ':'
+| | | | | | |   minReads=(Right 2)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | |   minReads=(Right 2)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | read (':' ==)
+| | | | | | |   minReads=(Right 2)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | |   minReads=(Right 1)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | |   minReads=(Right 1)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | call <hidden>
+| | | | | | |   minReads=(Right 1)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | |   minReads=(Right 0)
+| | | | | | |   mayRaise=[]
+| | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | |   minReads=(Right 0)
+| | | | | | |   mayRaise=[]
+| | | | | | | call <hidden>
+| | | | | | |   minReads=(Right 0)
+| | | | | | |   mayRaise=[]
+| | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | |   minReads=(Right 0)
+| | | | | | |   mayRaise=[]
+| | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | |   minReads=(Right 0)
+| | | | | | |   mayRaise=[]
+| | | | | | | commit ExceptionFailure
+| | | | | | |   minReads=(Right 0)
+| | | | | | |   mayRaise=[]
+| | | | | | | refJoin <hidden>
+| | | | | | |   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>
+| | | | | | | | | call <hidden>
+| | | | | | | | |   minReads=(Right 0)
+| | | | | | | | |   mayRaise=[]
+| | | | | | | | | refJoin <hidden>
+| | | | | | | | |   minReads=(Right 0)
+| | | | | | | | |   mayRaise=[]
+| | | | | | | | <default>
+| | | | | | | | | fail fromList []
+| | | | | | | | |   minReads=(Left ExceptionFailure)
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | <ko>
+| | | | | loadInput
+| | | | |   minReads=(Left ExceptionFailure)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | fail fromList []
+| | | | |   minReads=(Left ExceptionFailure)
+| | | | |   mayRaise=[ExceptionFailure]
+| | <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 fromList []
+| | | | |   minReads=(Left ExceptionFailure)
+| | | | |   mayRaise=[ExceptionFailure]
+let <hidden>
+  minReads=(Right 0)
+  mayRaise=[]
+| catch ExceptionFailure
+|   minReads=(Right 0)
+|   mayRaise=[]
+| | <ok>
+| | | pushValue (\u1 -> (\u2 -> (\u3 -> u1 (u2 u3))))
+| | |   minReads=(Right 2)
+| | |   mayRaise=[]
+| | | pushValue (\u1 -> (\u2 -> (\u3 -> (u1 u3) u2)))
+| | |   minReads=(Right 2)
+| | |   mayRaise=[]
+| | | pushValue (\u1 -> (\u2 -> u1))
+| | |   minReads=(Right 2)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 2)
+| | |   mayRaise=[]
+| | | join <hidden>
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | |   minReads=(Right 0)
+| | | |   mayRaise=[]
+| | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | |   minReads=(Right 0)
+| | | |   mayRaise=[]
+| | | | call <hidden>
+| | | |   minReads=(Right 0)
+| | | |   mayRaise=[]
+| | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | |   minReads=(Right 0)
+| | | |   mayRaise=[]
+| | | | commit ExceptionFailure
+| | | |   minReads=(Right 0)
+| | | |   mayRaise=[]
+| | | | ret
+| | | |   minReads=(Right 0)
+| | | |   mayRaise=[]
+| | | catch ExceptionFailure
+| | |   minReads=(Right 2)
+| | |   mayRaise=[]
+| | | | <ok>
+| | | | | join <hidden>
+| | | | |   minReads=(Right 0)
+| | | | |   mayRaise=[]
+| | | | | | commit ExceptionFailure
+| | | | | |   minReads=(Right 0)
+| | | | | |   mayRaise=[]
+| | | | | | refJoin <hidden>
+| | | | | |   minReads=(Right 0)
+| | | | | |   mayRaise=[]
+| | | | | catch ExceptionFailure
+| | | | |   minReads=(Right 2)
+| | | | |   mayRaise=[]
+| | | | | | <ok>
+| | | | | | | join <hidden>
+| | | | | | |   minReads=(Right 0)
+| | | | | | |   mayRaise=[]
+| | | | | | | | commit ExceptionFailure
+| | | | | | | |   minReads=(Right 0)
+| | | | | | | |   mayRaise=[]
+| | | | | | | | refJoin <hidden>
+| | | | | | | |   minReads=(Right 0)
+| | | | | | | |   mayRaise=[]
+| | | | | | | catch ExceptionFailure
+| | | | | | |   minReads=(Right 2)
+| | | | | | |   mayRaise=[]
+| | | | | | | | <ok>
+| | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | |   minReads=(Right 2)
+| | | | | | | | |   mayRaise=[]
+| | | | | | | | | pushValue (\u1 -> u1)
+| | | | | | | | |   minReads=(Right 2)
+| | | | | | | | |   mayRaise=[]
+| | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | |   minReads=(Right 2)
+| | | | | | | | |   mayRaise=[]
+| | | | | | | | | catch ExceptionFailure
+| | | | | | | | |   minReads=(Right 2)
+| | | | | | | | |   mayRaise=[]
+| | | | | | | | | | <ok>
+| | | | | | | | | | | pushValue cons
+| | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | pushValue 'i'
+| | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | read ('i' ==)
+| | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | |   minReads=(Right 1)
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | |   minReads=(Right 1)
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | pushValue cons
+| | | | | | | | | | |   minReads=(Right 1)
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | | | |   minReads=(Right 1)
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | pushValue 'f'
+| | | | | | | | | | |   minReads=(Right 1)
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | |   minReads=(Right 1)
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | read ('f' ==)
+| | | | | | | | | | |   minReads=(Right 1)
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | pushValue Term
+| | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | commit ExceptionFailure
+| | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | call <hidden>
+| | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | commit ExceptionFailure
+| | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | refJoin <hidden>
+| | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | <ko>
+| | | | | | | | | | | loadInput
+| | | | | | | | | | |   minReads=(Left ExceptionFailure)
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | fail fromList []
+| | | | | | | | | | |   minReads=(Left ExceptionFailure)
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | <ko>
+| | | | | | | | | pushInput
+| | | | | | | | |   minReads=(Right 11)
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | lift2Value Term
+| | | | | | | | |   minReads=(Right 11)
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | choicesBranch [(\u1 -> u1)]
+| | | | | | | | |   minReads=(Right 11)
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | <branch>
+| | | | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | | | |   minReads=(Right 11)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | pushValue (\u1 -> u1)
+| | | | | | | | | | |   minReads=(Right 11)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | |   minReads=(Right 11)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | | | |   minReads=(Right 11)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | pushValue (\u1 -> u1)
+| | | | | | | | | | |   minReads=(Right 11)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | |   minReads=(Right 11)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | | | |   minReads=(Right 11)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | pushValue (\u1 -> u1)
+| | | | | | | | | | |   minReads=(Right 11)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | |   minReads=(Right 11)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | catch ExceptionFailure
+| | | | | | | | | | |   minReads=(Right 11)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | <ok>
+| | | | | | | | | | | | | pushValue cons
+| | | | | | | | | | | | |   minReads=(Right 11)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | | | | | |   minReads=(Right 11)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | pushValue 'w'
+| | | | | | | | | | | | |   minReads=(Right 11)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | |   minReads=(Right 11)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | read ('w' ==)
+| | | | | | | | | | | | |   minReads=(Right 11)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | |   minReads=(Right 10)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | |   minReads=(Right 10)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | pushValue cons
+| | | | | | | | | | | | |   minReads=(Right 10)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | | | | | |   minReads=(Right 10)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | pushValue 'h'
+| | | | | | | | | | | | |   minReads=(Right 10)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | |   minReads=(Right 10)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | read ('h' ==)
+| | | | | | | | | | | | |   minReads=(Right 10)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | |   minReads=(Right 9)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | |   minReads=(Right 9)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | pushValue cons
+| | | | | | | | | | | | |   minReads=(Right 9)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | | | | | |   minReads=(Right 9)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | pushValue 'i'
+| | | | | | | | | | | | |   minReads=(Right 9)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | |   minReads=(Right 9)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | read ('i' ==)
+| | | | | | | | | | | | |   minReads=(Right 9)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | |   minReads=(Right 8)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | |   minReads=(Right 8)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | pushValue cons
+| | | | | | | | | | | | |   minReads=(Right 8)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | | | | | |   minReads=(Right 8)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | pushValue 'l'
+| | | | | | | | | | | | |   minReads=(Right 8)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | |   minReads=(Right 8)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | read ('l' ==)
+| | | | | | | | | | | | |   minReads=(Right 8)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | |   minReads=(Right 7)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | |   minReads=(Right 7)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | pushValue cons
+| | | | | | | | | | | | |   minReads=(Right 7)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | | | | | |   minReads=(Right 7)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | pushValue 'e'
+| | | | | | | | | | | | |   minReads=(Right 7)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | |   minReads=(Right 7)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | read ('e' ==)
+| | | | | | | | | | | | |   minReads=(Right 7)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | |   minReads=(Right 6)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | |   minReads=(Right 6)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | pushValue Term
+| | | | | | | | | | | | |   minReads=(Right 6)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | |   minReads=(Right 6)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | |   minReads=(Right 6)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | |   minReads=(Right 6)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | |   minReads=(Right 6)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | |   minReads=(Right 6)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | commit ExceptionFailure
+| | | | | | | | | | | | |   minReads=(Right 6)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | |   minReads=(Right 6)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | call <hidden>
+| | | | | | | | | | | | |   minReads=(Right 6)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | |   minReads=(Right 6)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | |   minReads=(Right 6)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | call <hidden>
+| | | | | | | | | | | | |   minReads=(Right 6)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | |   minReads=(Right 4)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | |   minReads=(Right 4)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | call <hidden>
+| | | | | | | | | | | | |   minReads=(Right 4)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | refJoin <hidden>
+| | | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | <ko>
+| | | | | | | | | | | | | loadInput
+| | | | | | | | | | | | |   minReads=(Left ExceptionFailure)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | fail fromList []
+| | | | | | | | | | | | |   minReads=(Left ExceptionFailure)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | <default>
+| | | | | | | | | | | fail fromList []
+| | | | | | | | | | |   minReads=(Left ExceptionFailure)
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | <ko>
+| | | | | | | pushInput
+| | | | | | |   minReads=(Right 8)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | lift2Value Term
+| | | | | | |   minReads=(Right 8)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | choicesBranch [(\u1 -> u1)]
+| | | | | | |   minReads=(Right 8)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | <branch>
+| | | | | | | | | catch ExceptionFailure
+| | | | | | | | |   minReads=(Right 8)
+| | | | | | | | |   mayRaise=[]
+| | | | | | | | | | <ok>
+| | | | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | | | |   minReads=(Right 8)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | | | |   minReads=(Right 8)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | pushValue (\u1 -> u1)
+| | | | | | | | | | |   minReads=(Right 8)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | |   minReads=(Right 8)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | | | |   minReads=(Right 8)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | pushValue (\u1 -> u1)
+| | | | | | | | | | |   minReads=(Right 8)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | |   minReads=(Right 8)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | | | |   minReads=(Right 8)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | pushValue (\u1 -> u1)
+| | | | | | | | | | |   minReads=(Right 8)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | |   minReads=(Right 8)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | join <hidden>
+| | | | | | | | | | |   minReads=(Right 8)
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | |   minReads=(Right 8)
+| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | | | | |   minReads=(Right 8)
+| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | pushValue (\u1 -> u1)
+| | | | | | | | | | | |   minReads=(Right 8)
+| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | |   minReads=(Right 8)
+| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | call <hidden>
+| | | | | | | | | | | |   minReads=(Right 8)
+| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | |   minReads=(Right 6)
+| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | | | | |   minReads=(Right 6)
+| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | pushValue (\u1 -> u1)
+| | | | | | | | | | | |   minReads=(Right 6)
+| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | |   minReads=(Right 6)
+| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | pushValue ((\u1 -> (\u2 -> (\u3 -> (u1 u3) u2))) (\u1 -> (\u2 -> u1 u2)))
+| | | | | | | | | | | |   minReads=(Right 6)
+| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | call <hidden>
+| | | | | | | | | | | |   minReads=(Right 6)
+| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | call <hidden>
+| | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | call <hidden>
+| | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | |   minReads=(Right 4)
+| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | |   minReads=(Right 4)
+| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | |   minReads=(Right 4)
+| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | |   minReads=(Right 4)
+| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | | | | |   minReads=(Right 4)
+| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | | | | |   minReads=(Right 4)
+| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | pushValue '='
+| | | | | | | | | | | |   minReads=(Right 4)
+| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | |   minReads=(Right 4)
+| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | read ('=' ==)
+| | | | | | | | | | | |   minReads=(Right 4)
+| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | |   minReads=(Right 3)
+| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | |   minReads=(Right 3)
+| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | call <hidden>
+| | | | | | | | | | | |   minReads=(Right 3)
+| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | pushValue (\u1 -> u1)
+| | | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | call <hidden>
+| | | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | pushValue (\u1 -> u1)
+| | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | pushValue ((\u1 -> (\u2 -> (\u3 -> (u1 u3) u2))) (\u1 -> (\u2 -> u1 u2)))
+| | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | call <hidden>
+| | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | call <hidden>
+| | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | call <hidden>
+| | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | call <hidden>
+| | | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | commit ExceptionFailure
+| | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | refJoin <hidden>
+| | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | catch ExceptionFailure
+| | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | <ok>
+| | | | | | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | | | | | |   minReads=(Right 3)
+| | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | pushValue Term
+| | | | | | | | | | | | |   minReads=(Right 3)
+| | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | |   minReads=(Right 3)
+| | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | | | | | |   minReads=(Right 3)
+| | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | pushValue (\u1 -> u1)
+| | | | | | | | | | | | |   minReads=(Right 3)
+| | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | |   minReads=(Right 3)
+| | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | catch ExceptionFailure
+| | | | | | | | | | | | |   minReads=(Right 3)
+| | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | <ok>
+| | | | | | | | | | | | | | | pushValue cons
+| | | | | | | | | | | | | | |   minReads=(Right 3)
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | | | | | | | |   minReads=(Right 3)
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | pushValue 'v'
+| | | | | | | | | | | | | | |   minReads=(Right 3)
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | | | |   minReads=(Right 3)
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | read ('v' ==)
+| | | | | | | | | | | | | | |   minReads=(Right 3)
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | pushValue cons
+| | | | | | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | pushValue 'a'
+| | | | | | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | read ('a' ==)
+| | | | | | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | | | |   minReads=(Right 1)
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | | | |   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=[]
+| | | | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | | pushValue Term
+| | | | | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | | commit ExceptionFailure
+| | | | | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | | call <hidden>
+| | | | | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | | commit ExceptionFailure
+| | | | | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | | refJoin <hidden>
+| | | | | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | <ko>
+| | | | | | | | | | | | | | | loadInput
+| | | | | | | | | | | | | | |   minReads=(Left ExceptionFailure)
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | fail fromList []
+| | | | | | | | | | | | | | |   minReads=(Left ExceptionFailure)
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | <ko>
+| | | | | | | | | | | | | pushInput
+| | | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | lift2Value Term
+| | | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | choicesBranch [(\u1 -> u1)]
+| | | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | <branch>
+| | | | | | | | | | | | | | | call <hidden>
+| | | | | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | | refJoin <hidden>
+| | | | | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | <default>
+| | | | | | | | | | | | | | | fail fromList []
+| | | | | | | | | | | | | | |   minReads=(Left ExceptionFailure)
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | <ko>
+| | | | | | | | | | | loadInput
+| | | | | | | | | | |   minReads=(Left ExceptionFailure)
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | fail fromList []
+| | | | | | | | | | |   minReads=(Left ExceptionFailure)
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | <default>
+| | | | | | | | | fail fromList []
+| | | | | | | | |   minReads=(Left ExceptionFailure)
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | <ko>
+| | | | | pushInput
+| | | | |   minReads=(Right 4)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value Term
+| | | | |   minReads=(Right 4)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | choicesBranch [(\u1 -> u1)]
+| | | | |   minReads=(Right 4)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | | <branch>
+| | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | |   minReads=(Right 4)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | call <hidden>
+| | | | | | |   minReads=(Right 4)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | |   minReads=(Right 2)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | call <hidden>
+| | | | | | |   minReads=(Right 2)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | |   minReads=(Right 0)
+| | | | | | |   mayRaise=[]
+| | | | | | | refJoin <hidden>
+| | | | | | |   minReads=(Right 0)
+| | | | | | |   mayRaise=[]
+| | | | | | <default>
+| | | | | | | fail fromList []
+| | | | | | |   minReads=(Left ExceptionFailure)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | <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 fromList []
+| | | | |   minReads=(Left ExceptionFailure)
+| | | | |   mayRaise=[ExceptionFailure]
+let <hidden>
+  minReads=(Right 0)
+  mayRaise=[]
+| catch ExceptionFailure
+|   minReads=(Right 0)
+|   mayRaise=[]
+| | <ok>
+| | | pushValue (\u1 -> (\u2 -> (\u3 -> u1 (u2 u3))))
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | call <hidden>
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | pushValue (\u1 -> (\u2 -> u1))
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | pushValue (\u1 -> u1)
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | call <hidden>
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 2)
+| | |   mayRaise=[]
+| | | call <hidden>
+| | |   minReads=(Right 2)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | call <hidden>
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | 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 fromList []
+| | | | |   minReads=(Left ExceptionFailure)
+| | | | |   mayRaise=[ExceptionFailure]
+let <hidden>
+  minReads=(Right 0)
+  mayRaise=[]
+| catch ExceptionFailure
+|   minReads=(Right 0)
+|   mayRaise=[]
+| | <ok>
+| | | pushValue (\u1 -> (\u2 -> (\u3 -> u1 (u2 u3))))
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | call <hidden>
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | pushValue (\u1 -> (\u2 -> u1))
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | pushValue (\u1 -> u1)
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | call <hidden>
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 2)
+| | |   mayRaise=[]
+| | | call <hidden>
+| | |   minReads=(Right 2)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | call <hidden>
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | 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 fromList []
+| | | | |   minReads=(Left ExceptionFailure)
+| | | | |   mayRaise=[ExceptionFailure]
+let <hidden>
+  minReads=(Right 0)
+  mayRaise=[]
+| catch ExceptionFailure
+|   minReads=(Right 0)
+|   mayRaise=[]
+| | <ok>
+| | | pushValue (\u1 -> (\u2 -> (\u3 -> u1 (u2 u3))))
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | call <hidden>
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | pushValue (\u1 -> (\u2 -> u1))
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | pushValue (\u1 -> u1)
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | call <hidden>
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 2)
+| | |   mayRaise=[]
+| | | call <hidden>
+| | |   minReads=(Right 2)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | call <hidden>
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | 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 fromList []
+| | | | |   minReads=(Left ExceptionFailure)
+| | | | |   mayRaise=[ExceptionFailure]
+let <hidden>
+  minReads=(Right 0)
+  mayRaise=[]
+| catch ExceptionFailure
+|   minReads=(Right 0)
+|   mayRaise=[]
+| | <ok>
+| | | pushValue (\u1 -> (\u2 -> (\u3 -> u1 (u2 u3))))
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | call <hidden>
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | pushValue (\u1 -> (\u2 -> u1))
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | pushValue (\u1 -> u1)
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | call <hidden>
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 2)
+| | |   mayRaise=[]
+| | | call <hidden>
+| | |   minReads=(Right 2)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | call <hidden>
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | 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 fromList []
+| | | | |   minReads=(Left ExceptionFailure)
+| | | | |   mayRaise=[ExceptionFailure]
+let <hidden>
+  minReads=(Right 0)
+  mayRaise=[]
+| catch ExceptionFailure
+|   minReads=(Right 0)
+|   mayRaise=[]
+| | <ok>
+| | | pushValue (\u1 -> (\u2 -> (\u3 -> u1 (u2 u3))))
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | pushValue (\u1 -> (\u2 -> (\u3 -> (u1 u3) u2)))
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | pushValue (\u1 -> (\u2 -> u1))
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | pushValue (\u1 -> (\u2 -> u1))
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | pushValue (\u1 -> u1)
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | pushValue (\u1 -> (\u2 -> u1))
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | pushValue (\u1 -> (\u2 -> u1))
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | pushValue '!'
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | read ('!' ==)
+| | |   minReads=(Right 4)
+| | |   mayRaise=[ExceptionFailure]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 3)
+| | |   mayRaise=[ExceptionFailure]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 3)
+| | |   mayRaise=[ExceptionFailure]
+| | | call <hidden>
+| | |   minReads=(Right 3)
+| | |   mayRaise=[ExceptionFailure]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 2)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 2)
+| | |   mayRaise=[]
+| | | call <hidden>
+| | |   minReads=(Right 2)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | call <hidden>
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | 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 fromList []
+| | | | |   minReads=(Left ExceptionFailure)
+| | | | |   mayRaise=[ExceptionFailure]
+let <hidden>
+  minReads=(Right 0)
+  mayRaise=[]
+| catch ExceptionFailure
+|   minReads=(Right 0)
+|   mayRaise=[]
+| | <ok>
+| | | pushValue (\u1 -> (\u2 -> u1))
+| | |   minReads=(Right 2)
+| | |   mayRaise=[]
+| | | pushValue Term
+| | |   minReads=(Right 2)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 2)
+| | |   mayRaise=[]
+| | | pushValue (\u1 -> (\u2 -> u1))
+| | |   minReads=(Right 2)
+| | |   mayRaise=[]
+| | | pushValue (\u1 -> u1)
+| | |   minReads=(Right 2)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 2)
+| | |   mayRaise=[]
+| | | call <hidden>
+| | |   minReads=(Right 2)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | pushValue (\u1 -> (\u2 -> u1))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | pushValue (\u1 -> u1)
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | pushValue ((\u1 -> (\u2 -> (\u3 -> (u1 u3) u2))) (\u1 -> (\u2 -> u1 u2)))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | call <hidden>
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | call <hidden>
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | call <hidden>
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | 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>
+| | | | | jump <hidden>
+| | | | |   minReads=(Right 0)
+| | | | |   mayRaise=[]
+| | | | <default>
+| | | | | fail fromList []
+| | | | |   minReads=(Left ExceptionFailure)
+| | | | |   mayRaise=[ExceptionFailure]
+let <hidden>
+  minReads=(Right 0)
+  mayRaise=[]
+| pushValue (\u1 -> (\u2 -> (\u3 -> (u1 u3) u2)))
+|   minReads=(Right 0)
+|   mayRaise=[]
+| pushValue (\u1 -> (\u2 -> u1))
+|   minReads=(Right 0)
+|   mayRaise=[]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 0)
+|   mayRaise=[]
+| ret
+|   minReads=(Right 0)
+|   mayRaise=[]
+let <hidden>
+  minReads=(Right 0)
+  mayRaise=[]
+| pushValue Term
+|   minReads=(Right 0)
+|   mayRaise=[]
+| ret
+|   minReads=(Right 0)
+|   mayRaise=[]
+let <hidden>
+  minReads=(Right 0)
+  mayRaise=[]
+| pushValue Term
+|   minReads=(Right 0)
+|   mayRaise=[]
+| ret
+|   minReads=(Right 0)
+|   mayRaise=[]
+let <hidden>
+  minReads=(Right 1)
+  mayRaise=[ExceptionFailure]
+| pushValue (\u1 -> (\u2 -> u1))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| pushValue (\u1 -> u1)
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
 | lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
 | call <hidden>
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 0)
+|   mayRaise=[]
+| pushValue (\u1 -> (\u2 -> u1))
+|   minReads=(Right 0)
+|   mayRaise=[]
+| pushValue (\u1 -> u1)
+|   minReads=(Right 0)
+|   mayRaise=[]
 | lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 0)
+|   mayRaise=[]
+| pushValue ((\u1 -> (\u2 -> (\u3 -> (u1 u3) u2))) (\u1 -> (\u2 -> u1 u2)))
+|   minReads=(Right 0)
+|   mayRaise=[]
+| pushValue Term
+|   minReads=(Right 0)
+|   mayRaise=[]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 0)
+|   mayRaise=[]
 | call <hidden>
+|   minReads=(Right 0)
+|   mayRaise=[]
 | lift2Value (\u1 -> (\u2 -> u1 u2))
-| <hidden>:
-| | lift2Value (\u1 -> (\u2 -> u1 u2))
-| | call <hidden>
+|   minReads=(Right 0)
+|   mayRaise=[]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 0)
+|   mayRaise=[]
+| pushValue Term
+|   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=[]
+let <hidden>
+  minReads=(Right 1)
+  mayRaise=[ExceptionFailure]
+| pushValue (\u1 -> (\u2 -> u1))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| pushValue (\u1 -> u1)
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| read Term
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 0)
+|   mayRaise=[]
+| call <hidden>
+|   minReads=(Right 0)
+|   mayRaise=[]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 0)
+|   mayRaise=[]
+| ret
+|   minReads=(Right 0)
+|   mayRaise=[]
+let <hidden>
+  minReads=(Right 1)
+  mayRaise=[ExceptionFailure]
+| read Term
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| ret
+|   minReads=(Right 0)
+|   mayRaise=[]
+let <hidden>
+  minReads=(Right 2)
+  mayRaise=[ExceptionFailure]
+| pushValue (\u1 -> (\u2 -> u1))
+|   minReads=(Right 2)
+|   mayRaise=[ExceptionFailure]
+| pushValue (\u1 -> (\u2 -> u1))
+|   minReads=(Right 2)
+|   mayRaise=[ExceptionFailure]
+| pushValue '('
+|   minReads=(Right 2)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 2)
+|   mayRaise=[ExceptionFailure]
+| read ('(' ==)
+|   minReads=(Right 2)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| call <hidden>
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 0)
+|   mayRaise=[]
+| ret
+|   minReads=(Right 0)
+|   mayRaise=[]
+let <hidden>
+  minReads=(Right 2)
+  mayRaise=[ExceptionFailure]
+| pushValue (\u1 -> (\u2 -> u1))
+|   minReads=(Right 2)
+|   mayRaise=[ExceptionFailure]
+| pushValue (\u1 -> (\u2 -> u1))
+|   minReads=(Right 2)
+|   mayRaise=[ExceptionFailure]
+| pushValue ')'
+|   minReads=(Right 2)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 2)
+|   mayRaise=[ExceptionFailure]
+| read (')' ==)
+|   minReads=(Right 2)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| call <hidden>
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 0)
+|   mayRaise=[]
+| ret
+|   minReads=(Right 0)
+|   mayRaise=[]
+let <hidden>
+  minReads=(Right 2)
+  mayRaise=[ExceptionFailure]
+| pushValue (\u1 -> (\u2 -> u1))
+|   minReads=(Right 2)
+|   mayRaise=[ExceptionFailure]
+| pushValue (\u1 -> (\u2 -> u1))
+|   minReads=(Right 2)
+|   mayRaise=[ExceptionFailure]
+| pushValue ','
+|   minReads=(Right 2)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 2)
+|   mayRaise=[ExceptionFailure]
+| read (',' ==)
+|   minReads=(Right 2)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| call <hidden>
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 0)
+|   mayRaise=[]
+| ret
+|   minReads=(Right 0)
+|   mayRaise=[]
+let <hidden>
+  minReads=(Right 2)
+  mayRaise=[ExceptionFailure]
+| pushValue (\u1 -> (\u2 -> u1))
+|   minReads=(Right 2)
+|   mayRaise=[ExceptionFailure]
+| pushValue (\u1 -> (\u2 -> u1))
+|   minReads=(Right 2)
+|   mayRaise=[ExceptionFailure]
+| pushValue ';'
+|   minReads=(Right 2)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 2)
+|   mayRaise=[ExceptionFailure]
+| read (';' ==)
+|   minReads=(Right 2)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| call <hidden>
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 0)
+|   mayRaise=[]
+| ret
+|   minReads=(Right 0)
+|   mayRaise=[]
+let <hidden>
+  minReads=(Right 2)
+  mayRaise=[]
+| catch ExceptionFailure
+|   minReads=(Right 2)
+|   mayRaise=[]
+| | <ok>
+| | | join <hidden>
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | | commit ExceptionFailure
+| | | |   minReads=(Right 0)
+| | | |   mayRaise=[]
+| | | | ret
+| | | |   minReads=(Right 0)
+| | | |   mayRaise=[]
+| | | catch ExceptionFailure
+| | |   minReads=(Right 2)
+| | |   mayRaise=[]
+| | | | <ok>
+| | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | |   minReads=(Right 2)
+| | | | |   mayRaise=[]
+| | | | | pushValue (\u1 -> u1)
+| | | | |   minReads=(Right 2)
+| | | | |   mayRaise=[]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 2)
+| | | | |   mayRaise=[]
+| | | | | join <hidden>
+| | | | |   minReads=(Right 1)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | |   minReads=(Right 1)
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | call <hidden>
+| | | | | |   minReads=(Right 1)
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | |   minReads=(Right 0)
+| | | | | |   mayRaise=[]
+| | | | | | commit ExceptionFailure
+| | | | | |   minReads=(Right 0)
+| | | | | |   mayRaise=[]
+| | | | | | refJoin <hidden>
+| | | | | |   minReads=(Right 0)
+| | | | | |   mayRaise=[]
+| | | | | catch ExceptionFailure
+| | | | |   minReads=(Right 1)
+| | | | |   mayRaise=[]
+| | | | | | <ok>
+| | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | |   minReads=(Right 1)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | pushValue '0'
+| | | | | | |   minReads=(Right 1)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | |   minReads=(Right 1)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | read ('0' ==)
+| | | | | | |   minReads=(Right 1)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | |   minReads=(Right 0)
+| | | | | | |   mayRaise=[]
+| | | | | | | commit ExceptionFailure
+| | | | | | |   minReads=(Right 0)
+| | | | | | |   mayRaise=[]
+| | | | | | | refJoin <hidden>
+| | | | | | |   minReads=(Right 0)
+| | | | | | |   mayRaise=[]
+| | | | | | <ko>
+| | | | | | | pushInput
+| | | | | | |   minReads=(Right 1)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | lift2Value Term
+| | | | | | |   minReads=(Right 1)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | choicesBranch [(\u1 -> u1)]
+| | | | | | |   minReads=(Right 1)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | <branch>
+| | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | |   minReads=(Right 1)
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | pushValue '1'
+| | | | | | | | |   minReads=(Right 1)
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | |   minReads=(Right 1)
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | read ('1' ==)
+| | | | | | | | |   minReads=(Right 1)
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | |   minReads=(Right 0)
+| | | | | | | | |   mayRaise=[]
+| | | | | | | | | refJoin <hidden>
+| | | | | | | | |   minReads=(Right 0)
+| | | | | | | | |   mayRaise=[]
+| | | | | | | | <default>
+| | | | | | | | | fail fromList []
+| | | | | | | | |   minReads=(Left ExceptionFailure)
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | <ko>
+| | | | | pushInput
+| | | | |   minReads=(Right 4)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | lift2Value Term
+| | | | |   minReads=(Right 4)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | choicesBranch [(\u1 -> u1)]
+| | | | |   minReads=(Right 4)
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | | | <branch>
+| | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | |   minReads=(Right 4)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | |   minReads=(Right 4)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | pushValue (\u1 -> u1)
+| | | | | | |   minReads=(Right 4)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | |   minReads=(Right 4)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | |   minReads=(Right 4)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | pushValue '\''
+| | | | | | |   minReads=(Right 4)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | |   minReads=(Right 4)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | read ('\'' ==)
+| | | | | | |   minReads=(Right 4)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | |   minReads=(Right 3)
+| | | | | | |   mayRaise=[]
+| | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | |   minReads=(Right 3)
+| | | | | | |   mayRaise=[]
+| | | | | | | join <hidden>
+| | | | | | |   minReads=(Right 2)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | |   minReads=(Right 2)
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | |   minReads=(Right 2)
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | |   minReads=(Right 2)
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | |   minReads=(Right 2)
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | pushValue '\''
+| | | | | | | |   minReads=(Right 2)
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | |   minReads=(Right 2)
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | read ('\'' ==)
+| | | | | | | |   minReads=(Right 2)
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | |   minReads=(Right 1)
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | |   minReads=(Right 1)
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | call <hidden>
+| | | | | | | |   minReads=(Right 1)
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | |   minReads=(Right 0)
+| | | | | | | |   mayRaise=[]
+| | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | |   minReads=(Right 0)
+| | | | | | | |   mayRaise=[]
+| | | | | | | | refJoin <hidden>
+| | | | | | | |   minReads=(Right 0)
+| | | | | | | |   mayRaise=[]
+| | | | | | | catch ExceptionFailure
+| | | | | | |   minReads=(Right 1)
+| | | | | | |   mayRaise=[]
+| | | | | | | | <ok>
+| | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | |   minReads=(Right 1)
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | pushValue (\u1 -> u1)
+| | | | | | | | |   minReads=(Right 1)
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | |   minReads=(Right 1)
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | read Term
+| | | | | | | | |   minReads=(Right 1)
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | |   minReads=(Right 0)
+| | | | | | | | |   mayRaise=[]
+| | | | | | | | | call <hidden>
+| | | | | | | | |   minReads=(Right 0)
+| | | | | | | | |   mayRaise=[]
+| | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | |   minReads=(Right 0)
+| | | | | | | | |   mayRaise=[]
+| | | | | | | | | commit ExceptionFailure
+| | | | | | | | |   minReads=(Right 0)
+| | | | | | | | |   mayRaise=[]
+| | | | | | | | | refJoin <hidden>
+| | | | | | | | |   minReads=(Right 0)
+| | | | | | | | |   mayRaise=[]
+| | | | | | | | <ko>
+| | | | | | | | | pushInput
+| | | | | | | | |   minReads=(Right 2)
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | lift2Value Term
+| | | | | | | | |   minReads=(Right 2)
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | choicesBranch [(\u1 -> u1)]
+| | | | | | | | |   minReads=(Right 2)
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | <branch>
+| | | | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | pushValue (\u1 -> u1)
+| | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | pushValue '\\'
+| | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | read ('\\' ==)
+| | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | |   minReads=(Right 1)
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | |   minReads=(Right 1)
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | | | |   minReads=(Right 1)
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | pushValue (\u1 -> u1)
+| | | | | | | | | | |   minReads=(Right 1)
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | |   minReads=(Right 1)
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | read Term
+| | | | | | | | | | |   minReads=(Right 1)
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | call <hidden>
+| | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | refJoin <hidden>
+| | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | <default>
+| | | | | | | | | | | fail fromList []
+| | | | | | | | | | |   minReads=(Left ExceptionFailure)
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | <default>
+| | | | | | | fail fromList []
+| | | | | | |   minReads=(Left ExceptionFailure)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | <ko>
+| | | pushInput
+| | |   minReads=(Right 2)
+| | |   mayRaise=[ExceptionFailure]
+| | | lift2Value Term
+| | |   minReads=(Right 2)
+| | |   mayRaise=[ExceptionFailure]
+| | | choicesBranch [(\u1 -> u1)]
+| | |   minReads=(Right 2)
+| | |   mayRaise=[ExceptionFailure]
+| | | | <branch>
+| | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | |   minReads=(Right 2)
+| | | | |   mayRaise=[]
+| | | | | pushValue (\u1 -> u1)
+| | | | |   minReads=(Right 2)
+| | | | |   mayRaise=[]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 2)
+| | | | |   mayRaise=[]
+| | | | | call <hidden>
+| | | | |   minReads=(Right 2)
+| | | | |   mayRaise=[]
+| | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | |   minReads=(Right 0)
+| | | | |   mayRaise=[]
+| | | | | join <hidden>
+| | | | |   minReads=(Right 0)
+| | | | |   mayRaise=[]
+| | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | |   minReads=(Right 0)
+| | | | | |   mayRaise=[]
+| | | | | | ret
+| | | | | |   minReads=(Right 0)
+| | | | | |   mayRaise=[]
+| | | | | catch ExceptionFailure
+| | | | |   minReads=(Right 0)
+| | | | |   mayRaise=[]
+| | | | | | <ok>
+| | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | |   minReads=(Right 4)
+| | | | | | |   mayRaise=[]
+| | | | | | | pushValue Term
+| | | | | | |   minReads=(Right 4)
+| | | | | | |   mayRaise=[]
+| | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | |   minReads=(Right 4)
+| | | | | | |   mayRaise=[]
+| | | | | | | join <hidden>
+| | | | | | |   minReads=(Right 0)
+| | | | | | |   mayRaise=[]
+| | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | |   minReads=(Right 0)
+| | | | | | | |   mayRaise=[]
+| | | | | | | | commit ExceptionFailure
+| | | | | | | |   minReads=(Right 0)
+| | | | | | | |   mayRaise=[]
+| | | | | | | | refJoin <hidden>
+| | | | | | | |   minReads=(Right 0)
+| | | | | | | |   mayRaise=[]
+| | | | | | | catch ExceptionFailure
+| | | | | | |   minReads=(Right 4)
+| | | | | | |   mayRaise=[]
+| | | | | | | | <ok>
+| | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | |   minReads=(Right 4)
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | |   minReads=(Right 4)
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | pushValue (\u1 -> u1)
+| | | | | | | | |   minReads=(Right 4)
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | |   minReads=(Right 4)
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | call <hidden>
+| | | | | | | | |   minReads=(Right 4)
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | |   minReads=(Right 2)
+| | | | | | | | |   mayRaise=[]
+| | | | | | | | | join <hidden>
+| | | | | | | | |   minReads=(Right 2)
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | call <hidden>
+| | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | commit ExceptionFailure
+| | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | refJoin <hidden>
+| | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | |   mayRaise=[]
+| | | | | | | | | catch ExceptionFailure
+| | | | | | | | |   minReads=(Right 0)
+| | | | | | | | |   mayRaise=[]
+| | | | | | | | | | <ok>
+| | | | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | pushValue Term
+| | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | pushValue (\u1 -> u1)
+| | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | call <hidden>
+| | | | | | | | | | |   minReads=(Right 2)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | pushValue (\u1 -> (\u2 -> u1))
+| | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | pushValue (\u1 -> u1)
+| | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | pushValue ((\u1 -> (\u2 -> (\u3 -> (u1 u3) u2))) (\u1 -> (\u2 -> u1 u2)))
+| | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | call <hidden>
+| | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | call <hidden>
+| | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | call <hidden>
+| | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | commit ExceptionFailure
+| | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | refJoin <hidden>
+| | | | | | | | | | |   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>
+| | | | | | | | | | | | | call <hidden>
+| | | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | refJoin <hidden>
+| | | | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | <default>
+| | | | | | | | | | | | | fail fromList []
+| | | | | | | | | | | | |   minReads=(Left ExceptionFailure)
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | <ko>
+| | | | | | | | | pushInput
+| | | | | | | | |   minReads=(Right 5)
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | lift2Value Term
+| | | | | | | | |   minReads=(Right 5)
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | choicesBranch [(\u1 -> u1)]
+| | | | | | | | |   minReads=(Right 5)
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | <branch>
+| | | | | | | | | | | call <hidden>
+| | | | | | | | | | |   minReads=(Right 5)
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | refJoin <hidden>
+| | | | | | | | | | |   minReads=(Right 0)
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | <default>
+| | | | | | | | | | | fail fromList []
+| | | | | | | | | | |   minReads=(Left ExceptionFailure)
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | <ko>
+| | | | | | | pushInput
+| | | | | | |   minReads=(Right 0)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | lift2Value Term
+| | | | | | |   minReads=(Right 0)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | choicesBranch [(\u1 -> u1)]
+| | | | | | |   minReads=(Right 0)
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | <branch>
+| | | | | | | | | call <hidden>
+| | | | | | | | |   minReads=(Right 0)
+| | | | | | | | |   mayRaise=[]
+| | | | | | | | | refJoin <hidden>
+| | | | | | | | |   minReads=(Right 0)
+| | | | | | | | |   mayRaise=[]
+| | | | | | | | <default>
+| | | | | | | | | fail fromList []
+| | | | | | | | |   minReads=(Left ExceptionFailure)
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | <default>
+| | | | | fail fromList []
+| | | | |   minReads=(Left ExceptionFailure)
+| | | | |   mayRaise=[ExceptionFailure]
+let <hidden>
+  minReads=(Right 2)
+  mayRaise=[]
+| pushValue (\u1 -> (\u2 -> u1))
+|   minReads=(Right 2)
+|   mayRaise=[]
+| pushValue (\u1 -> u1)
+|   minReads=(Right 2)
+|   mayRaise=[]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 2)
+|   mayRaise=[]
+| call <hidden>
+|   minReads=(Right 2)
+|   mayRaise=[]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 0)
+|   mayRaise=[]
+| join <hidden>
+|   minReads=(Right 0)
+|   mayRaise=[]
 | | lift2Value (\u1 -> (\u2 -> u1 u2))
-| | <hidden>:
+| |   minReads=(Right 0)
+| |   mayRaise=[]
+| | ret
+| |   minReads=(Right 0)
+| |   mayRaise=[]
+| catch ExceptionFailure
+|   minReads=(Right 0)
+|   mayRaise=[]
+| | <ok>
+| | | pushValue (\u1 -> (\u2 -> u1))
+| | |   minReads=(Right 5)
+| | |   mayRaise=[ExceptionFailure]
+| | | pushValue Term
+| | |   minReads=(Right 5)
+| | |   mayRaise=[ExceptionFailure]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 5)
+| | |   mayRaise=[ExceptionFailure]
+| | | call <hidden>
+| | |   minReads=(Right 5)
+| | |   mayRaise=[ExceptionFailure]
 | | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | commit ExceptionFailure
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | refJoin <hidden>
+| | |   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>
+| | | | | call <hidden>
+| | | | |   minReads=(Right 0)
+| | | | |   mayRaise=[]
+| | | | | refJoin <hidden>
+| | | | |   minReads=(Right 0)
+| | | | |   mayRaise=[]
+| | | | <default>
+| | | | | fail fromList []
+| | | | |   minReads=(Left ExceptionFailure)
+| | | | |   mayRaise=[ExceptionFailure]
+let <hidden>
+  minReads=(Right 2)
+  mayRaise=[]
+| pushValue (\u1 -> (\u2 -> u1))
+|   minReads=(Right 2)
+|   mayRaise=[]
+| pushValue (\u1 -> u1)
+|   minReads=(Right 2)
+|   mayRaise=[]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 2)
+|   mayRaise=[]
+| call <hidden>
+|   minReads=(Right 2)
+|   mayRaise=[]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 0)
+|   mayRaise=[]
+| pushValue (\u1 -> (\u2 -> u1))
+|   minReads=(Right 0)
+|   mayRaise=[]
+| pushValue (\u1 -> u1)
+|   minReads=(Right 0)
+|   mayRaise=[]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 0)
+|   mayRaise=[]
+| pushValue ((\u1 -> (\u2 -> (\u3 -> (u1 u3) u2))) (\u1 -> (\u2 -> u1 u2)))
+|   minReads=(Right 0)
+|   mayRaise=[]
+| call <hidden>
+|   minReads=(Right 0)
+|   mayRaise=[]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 0)
+|   mayRaise=[]
+| call <hidden>
+|   minReads=(Right 0)
+|   mayRaise=[]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 0)
+|   mayRaise=[]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 0)
+|   mayRaise=[]
+| call <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=[]
+let <hidden>
+  minReads=(Right 2)
+  mayRaise=[]
+| pushValue (\u1 -> (\u2 -> u1))
+|   minReads=(Right 2)
+|   mayRaise=[]
+| pushValue (\u1 -> u1)
+|   minReads=(Right 2)
+|   mayRaise=[]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 2)
+|   mayRaise=[]
+| catch ExceptionFailure
+|   minReads=(Right 2)
+|   mayRaise=[]
+| | <ok>
+| | | pushValue (\u1 -> (\u2 -> u1))
+| | |   minReads=(Right 2)
+| | |   mayRaise=[ExceptionFailure]
+| | | pushValue (\u1 -> u1)
+| | |   minReads=(Right 2)
+| | |   mayRaise=[ExceptionFailure]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 2)
+| | |   mayRaise=[ExceptionFailure]
+| | | read Term
+| | |   minReads=(Right 2)
+| | |   mayRaise=[ExceptionFailure]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 1)
+| | |   mayRaise=[ExceptionFailure]
+| | | pushValue (\u1 -> (\u2 -> u1))
+| | |   minReads=(Right 1)
+| | |   mayRaise=[ExceptionFailure]
+| | | pushValue (\u1 -> u1)
+| | |   minReads=(Right 1)
+| | |   mayRaise=[ExceptionFailure]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 1)
+| | |   mayRaise=[ExceptionFailure]
+| | | pushValue ((\u1 -> (\u2 -> (\u3 -> (u1 u3) u2))) (\u1 -> (\u2 -> u1 u2)))
+| | |   minReads=(Right 1)
+| | |   mayRaise=[ExceptionFailure]
+| | | call <hidden>
+| | |   minReads=(Right 1)
+| | |   mayRaise=[ExceptionFailure]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | call <hidden>
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | call <hidden>
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 1)
+| | |   mayRaise=[ExceptionFailure]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 1)
+| | |   mayRaise=[ExceptionFailure]
+| | | commit ExceptionFailure
+| | |   minReads=(Right 1)
+| | |   mayRaise=[ExceptionFailure]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 1)
+| | |   mayRaise=[ExceptionFailure]
+| | | call <hidden>
+| | |   minReads=(Right 1)
+| | |   mayRaise=[ExceptionFailure]
+| | | lift2Value (\u1 -> (\u2 -> u1 u2))
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
 | | | ret
-| | catchException "fail"
-| |   <try>
-| |   | catchException "fail"
-| |   |   <try>
-| |   |   | pushInput
-| |   |   | read (\u1 -> Term)
-| |   |   | popValue
-| |   |   | popException "fail"
-| |   |   | loadInput
-| |   |   | raiseException "fail"
-| |   |   <handler>
-| |   |     loadInput
-| |   |     pushValue Term
-| |   |     popException "fail"
-| |   |     refJoin <hidden>
-| |   <handler>
-| |     pushInput
-| |     lift2Value Term
-| |     choicesBranch [(\u1 -> u1)]
-| |       <branch>
-| |       | raiseException "fail"
-| |       <default>
-| |         raiseException "fail"
-| catchException "fail"
-|   <try>
-|   | pushValue (\u1 -> (\u2 -> (\u3 -> (\u4 -> (\u5 -> (\u6 -> (\u7 -> (\u8 -> (\u9 -> (\u10 -> (\u11 -> (\u12 -> (\u13 -> (\u14 -> (\u15 -> (\u16 -> (\u17 -> (\u18 -> (\u19 -> u18 u19)))))))))))))))))))
-|   | catchException "fail"
-|   |   <try>
-|   |   | pushValue (\u1 -> Term)
-|   |   | catchException "fail"
-|   |   |   <try>
-|   |   |   | pushValue (\u1 -> (\u2 -> (\u3 -> (\u4 -> (\u5 -> (\u6 -> (\u7 -> (\u8 -> 'f' : ('u' : ('n' : ('c' : ('t' : ('i' : ('o' : ('n' : Term)))))))))))))))
-|   |   |   | read ('f' ==)
-|   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   | read ('u' ==)
-|   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   | read ('n' ==)
-|   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   | read ('c' ==)
-|   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   | read ('t' ==)
-|   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   | read ('i' ==)
-|   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   | read ('o' ==)
-|   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   | read ('n' ==)
-|   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   | popException "fail"
-|   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   | catchException "fail"
-|   |   |   |   <try>
-|   |   |   |   | pushInput
-|   |   |   |   | read Term
-|   |   |   |   | popValue
-|   |   |   |   | popException "fail"
-|   |   |   |   | loadInput
-|   |   |   |   | raiseException "fail"
-|   |   |   |   <handler>
-|   |   |   |     loadInput
-|   |   |   |     popException "fail"
-|   |   |   |     lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |     call <hidden>
-|   |   |   |     lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |     catchException "fail"
-|   |   |   |       <try>
-|   |   |   |       | pushValue (\u1 -> (\u2 -> (\u3 -> (\u4 -> u4))))
-|   |   |   |       | read Term
-|   |   |   |       | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | call <hidden>
-|   |   |   |       | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | <hidden>:
-|   |   |   |       | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | call <hidden>
-|   |   |   |       | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | popException "fail"
-|   |   |   |       | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | call <hidden>
-|   |   |   |       | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | read ('(' ==)
-|   |   |   |       | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | call <hidden>
-|   |   |   |       | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | <hidden>:
-|   |   |   |       | | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | <hidden>:
-|   |   |   |       | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | | read (')' ==)
-|   |   |   |       | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | | call <hidden>
-|   |   |   |       | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | | read ('{' ==)
-|   |   |   |       | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | | call <hidden>
-|   |   |   |       | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | | call <hidden>
-|   |   |   |       | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | | <hidden>:
-|   |   |   |       | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | | | call <hidden>
-|   |   |   |       | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | | | read ('}' ==)
-|   |   |   |       | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | | | call <hidden>
-|   |   |   |       | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | | | call <hidden>
-|   |   |   |       | | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | | | popException "fail"
-|   |   |   |       | | | | | refJoin <hidden>
-|   |   |   |       | | | | catchException "fail"
-|   |   |   |       | | | |   <try>
-|   |   |   |       | | | |   | pushValue (\u1 -> (\u2 -> (\u3 -> u2 u3)))
-|   |   |   |       | | | |   | <hidden>:
-|   |   |   |       | | | |   | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   | | call <hidden>
-|   |   |   |       | | | |   | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   | | popException "fail"
-|   |   |   |       | | | |   | | refJoin <hidden>
-|   |   |   |       | | | |   | catchException "fail"
-|   |   |   |       | | | |   |   <try>
-|   |   |   |       | | | |   |   | pushValue (\u1 -> (\u2 -> (\u3 -> (\u4 -> (\u5 -> (\u6 -> (\u7 -> (\u8 -> u8))))))))
-|   |   |   |       | | | |   |   | catchException "fail"
-|   |   |   |       | | | |   |   |   <try>
-|   |   |   |       | | | |   |   |   | pushValue (\u1 -> (\u2 -> u2))
-|   |   |   |       | | | |   |   |   | catchException "fail"
-|   |   |   |       | | | |   |   |   |   <try>
-|   |   |   |       | | | |   |   |   |   | pushValue (\u1 -> (\u2 -> (\u3 -> 'i' : ('f' : u3))))
-|   |   |   |       | | | |   |   |   |   | read ('i' ==)
-|   |   |   |       | | | |   |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   | read ('f' ==)
-|   |   |   |       | | | |   |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   | call <hidden>
-|   |   |   |       | | | |   |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   | popException "fail"
-|   |   |   |       | | | |   |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   | call <hidden>
-|   |   |   |       | | | |   |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   | popException "fail"
-|   |   |   |       | | | |   |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   | call <hidden>
-|   |   |   |       | | | |   |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   | <hidden>:
-|   |   |   |       | | | |   |   |   |   | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   | | call <hidden>
-|   |   |   |       | | | |   |   |   |   | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   | | <hidden>:
-|   |   |   |       | | | |   |   |   |   | | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   | | | call <hidden>
-|   |   |   |       | | | |   |   |   |   | | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   | | | call <hidden>
-|   |   |   |       | | | |   |   |   |   | | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   | | | <hidden>:
-|   |   |   |       | | | |   |   |   |   | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   | | | | popException "fail"
-|   |   |   |       | | | |   |   |   |   | | | | refJoin <hidden>
-|   |   |   |       | | | |   |   |   |   | | | catchException "fail"
-|   |   |   |       | | | |   |   |   |   | | |   <try>
-|   |   |   |       | | | |   |   |   |   | | |   | pushValue (\u1 -> (\u2 -> (\u3 -> Term)))
-|   |   |   |       | | | |   |   |   |   | | |   | catchException "fail"
-|   |   |   |       | | | |   |   |   |   | | |   |   <try>
-|   |   |   |       | | | |   |   |   |   | | |   |   | pushValue (\u1 -> (\u2 -> u2))
-|   |   |   |       | | | |   |   |   |   | | |   |   | catchException "fail"
-|   |   |   |       | | | |   |   |   |   | | |   |   |   <try>
-|   |   |   |       | | | |   |   |   |   | | |   |   |   | pushValue (\u1 -> (\u2 -> (\u3 -> (\u4 -> (\u5 -> 'e' : ('l' : ('s' : ('e' : u5))))))))
-|   |   |   |       | | | |   |   |   |   | | |   |   |   | read ('e' ==)
-|   |   |   |       | | | |   |   |   |   | | |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   | | |   |   |   | read ('l' ==)
-|   |   |   |       | | | |   |   |   |   | | |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   | | |   |   |   | read ('s' ==)
-|   |   |   |       | | | |   |   |   |   | | |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   | | |   |   |   | read ('e' ==)
-|   |   |   |       | | | |   |   |   |   | | |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   | | |   |   |   | call <hidden>
-|   |   |   |       | | | |   |   |   |   | | |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   | | |   |   |   | popException "fail"
-|   |   |   |       | | | |   |   |   |   | | |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   | | |   |   |   | call <hidden>
-|   |   |   |       | | | |   |   |   |   | | |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   | | |   |   |   | popException "fail"
-|   |   |   |       | | | |   |   |   |   | | |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   | | |   |   |   | call <hidden>
-|   |   |   |       | | | |   |   |   |   | | |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   | | |   |   |   | call <hidden>
-|   |   |   |       | | | |   |   |   |   | | |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   | | |   |   |   | popException "fail"
-|   |   |   |       | | | |   |   |   |   | | |   |   |   | refJoin <hidden>
-|   |   |   |       | | | |   |   |   |   | | |   |   |   <handler>
-|   |   |   |       | | | |   |   |   |   | | |   |   |     loadInput
-|   |   |   |       | | | |   |   |   |   | | |   |   |     raiseException "fail"
-|   |   |   |       | | | |   |   |   |   | | |   |   <handler>
-|   |   |   |       | | | |   |   |   |   | | |   |     loadInput
-|   |   |   |       | | | |   |   |   |   | | |   |     raiseException "fail"
-|   |   |   |       | | | |   |   |   |   | | |   <handler>
-|   |   |   |       | | | |   |   |   |   | | |     pushInput
-|   |   |   |       | | | |   |   |   |   | | |     lift2Value Term
-|   |   |   |       | | | |   |   |   |   | | |     choicesBranch [(\u1 -> u1)]
-|   |   |   |       | | | |   |   |   |   | | |       <branch>
-|   |   |   |       | | | |   |   |   |   | | |       | call <hidden>
-|   |   |   |       | | | |   |   |   |   | | |       | refJoin <hidden>
-|   |   |   |       | | | |   |   |   |   | | |       <default>
-|   |   |   |       | | | |   |   |   |   | | |         raiseException "fail"
-|   |   |   |       | | | |   |   |   |   | | catchException "fail"
-|   |   |   |       | | | |   |   |   |   | |   <try>
-|   |   |   |       | | | |   |   |   |   | |   | pushValue (\u1 -> (\u2 -> (\u3 -> (\u4 -> (\u5 -> u4 u5)))))
-|   |   |   |       | | | |   |   |   |   | |   | read ('!' ==)
-|   |   |   |       | | | |   |   |   |   | |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   | |   | call <hidden>
-|   |   |   |       | | | |   |   |   |   | |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   | |   | call <hidden>
-|   |   |   |       | | | |   |   |   |   | |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   | |   | call <hidden>
-|   |   |   |       | | | |   |   |   |   | |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   | |   | popException "fail"
-|   |   |   |       | | | |   |   |   |   | |   | refJoin <hidden>
-|   |   |   |       | | | |   |   |   |   | |   <handler>
-|   |   |   |       | | | |   |   |   |   | |     pushInput
-|   |   |   |       | | | |   |   |   |   | |     lift2Value Term
-|   |   |   |       | | | |   |   |   |   | |     choicesBranch [(\u1 -> u1)]
-|   |   |   |       | | | |   |   |   |   | |       <branch>
-|   |   |   |       | | | |   |   |   |   | |       | pushValue (\u1 -> u1)
-|   |   |   |       | | | |   |   |   |   | |       | refJoin <hidden>
-|   |   |   |       | | | |   |   |   |   | |       <default>
-|   |   |   |       | | | |   |   |   |   | |         raiseException "fail"
-|   |   |   |       | | | |   |   |   |   | catchException "fail"
-|   |   |   |       | | | |   |   |   |   |   <try>
-|   |   |   |       | | | |   |   |   |   |   | pushValue (\u1 -> (\u2 -> u2))
-|   |   |   |       | | | |   |   |   |   |   | <hidden>:
-|   |   |   |       | | | |   |   |   |   |   | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   |   | | call <hidden>
-|   |   |   |       | | | |   |   |   |   |   | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   |   | | popException "fail"
-|   |   |   |       | | | |   |   |   |   |   | | refJoin <hidden>
-|   |   |   |       | | | |   |   |   |   |   | catchException "fail"
-|   |   |   |       | | | |   |   |   |   |   |   <try>
-|   |   |   |       | | | |   |   |   |   |   |   | pushValue (\u1 -> '0')
-|   |   |   |       | | | |   |   |   |   |   |   | read ('0' ==)
-|   |   |   |       | | | |   |   |   |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   |   |   | popException "fail"
-|   |   |   |       | | | |   |   |   |   |   |   | refJoin <hidden>
-|   |   |   |       | | | |   |   |   |   |   |   <handler>
-|   |   |   |       | | | |   |   |   |   |   |     pushInput
-|   |   |   |       | | | |   |   |   |   |   |     lift2Value Term
-|   |   |   |       | | | |   |   |   |   |   |     choicesBranch [(\u1 -> u1)]
-|   |   |   |       | | | |   |   |   |   |   |       <branch>
-|   |   |   |       | | | |   |   |   |   |   |       | pushValue (\u1 -> '1')
-|   |   |   |       | | | |   |   |   |   |   |       | read ('1' ==)
-|   |   |   |       | | | |   |   |   |   |   |       | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   |   |       | refJoin <hidden>
-|   |   |   |       | | | |   |   |   |   |   |       <default>
-|   |   |   |       | | | |   |   |   |   |   |         raiseException "fail"
-|   |   |   |       | | | |   |   |   |   |   <handler>
-|   |   |   |       | | | |   |   |   |   |     pushInput
-|   |   |   |       | | | |   |   |   |   |     lift2Value Term
-|   |   |   |       | | | |   |   |   |   |     choicesBranch [(\u1 -> u1)]
-|   |   |   |       | | | |   |   |   |   |       <branch>
-|   |   |   |       | | | |   |   |   |   |       | catchException "fail"
-|   |   |   |       | | | |   |   |   |   |       |   <try>
-|   |   |   |       | | | |   |   |   |   |       |   | pushValue (\u1 -> (\u2 -> (\u3 -> (\u4 -> u2))))
-|   |   |   |       | | | |   |   |   |   |       |   | read ('\'' ==)
-|   |   |   |       | | | |   |   |   |   |       |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   |       |   | <hidden>:
-|   |   |   |       | | | |   |   |   |   |       |   | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   |       |   | | read ('\'' ==)
-|   |   |   |       | | | |   |   |   |   |       |   | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   |       |   | | call <hidden>
-|   |   |   |       | | | |   |   |   |   |       |   | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   |       |   | | popException "fail"
-|   |   |   |       | | | |   |   |   |   |       |   | | refJoin <hidden>
-|   |   |   |       | | | |   |   |   |   |       |   | catchException "fail"
-|   |   |   |       | | | |   |   |   |   |       |   |   <try>
-|   |   |   |       | | | |   |   |   |   |       |   |   | pushValue (\u1 -> (\u2 -> u2))
-|   |   |   |       | | | |   |   |   |   |       |   |   | read Term
-|   |   |   |       | | | |   |   |   |   |       |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   |       |   |   | call <hidden>
-|   |   |   |       | | | |   |   |   |   |       |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   |       |   |   | popException "fail"
-|   |   |   |       | | | |   |   |   |   |       |   |   | refJoin <hidden>
-|   |   |   |       | | | |   |   |   |   |       |   |   <handler>
-|   |   |   |       | | | |   |   |   |   |       |   |     pushInput
-|   |   |   |       | | | |   |   |   |   |       |   |     lift2Value Term
-|   |   |   |       | | | |   |   |   |   |       |   |     choicesBranch [(\u1 -> u1)]
-|   |   |   |       | | | |   |   |   |   |       |   |       <branch>
-|   |   |   |       | | | |   |   |   |   |       |   |       | pushValue (\u1 -> (\u2 -> (\u3 -> u3)))
-|   |   |   |       | | | |   |   |   |   |       |   |       | read ('\\' ==)
-|   |   |   |       | | | |   |   |   |   |       |   |       | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   |       |   |       | read Term
-|   |   |   |       | | | |   |   |   |   |       |   |       | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   |       |   |       | call <hidden>
-|   |   |   |       | | | |   |   |   |   |       |   |       | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   |       |   |       | refJoin <hidden>
-|   |   |   |       | | | |   |   |   |   |       |   |       <default>
-|   |   |   |       | | | |   |   |   |   |       |   |         raiseException "fail"
-|   |   |   |       | | | |   |   |   |   |       |   <handler>
-|   |   |   |       | | | |   |   |   |   |       |     pushInput
-|   |   |   |       | | | |   |   |   |   |       |     lift2Value Term
-|   |   |   |       | | | |   |   |   |   |       |     choicesBranch [(\u1 -> u1)]
-|   |   |   |       | | | |   |   |   |   |       |       <branch>
-|   |   |   |       | | | |   |   |   |   |       |       | pushValue (\u1 -> (\u2 -> u2))
-|   |   |   |       | | | |   |   |   |   |       |       | call <hidden>
-|   |   |   |       | | | |   |   |   |   |       |       | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   |       |       | <hidden>:
-|   |   |   |       | | | |   |   |   |   |       |       | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   |       |       | | refJoin <hidden>
-|   |   |   |       | | | |   |   |   |   |       |       | catchException "fail"
-|   |   |   |       | | | |   |   |   |   |       |       |   <try>
-|   |   |   |       | | | |   |   |   |   |       |       |   | pushValue (\u1 -> Term)
-|   |   |   |       | | | |   |   |   |   |       |       |   | <hidden>:
-|   |   |   |       | | | |   |   |   |   |       |       |   | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   |       |       |   | | popException "fail"
-|   |   |   |       | | | |   |   |   |   |       |       |   | | refJoin <hidden>
-|   |   |   |       | | | |   |   |   |   |       |       |   | catchException "fail"
-|   |   |   |       | | | |   |   |   |   |       |       |   |   <try>
-|   |   |   |       | | | |   |   |   |   |       |       |   |   | pushValue (\u1 -> (\u2 -> (\u3 -> u2)))
-|   |   |   |       | | | |   |   |   |   |       |       |   |   | call <hidden>
-|   |   |   |       | | | |   |   |   |   |       |       |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   |       |       |   |   | <hidden>:
-|   |   |   |       | | | |   |   |   |   |       |       |   |   | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   |       |       |   |   | | call <hidden>
-|   |   |   |       | | | |   |   |   |   |       |       |   |   | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   |       |       |   |   | | popException "fail"
-|   |   |   |       | | | |   |   |   |   |       |       |   |   | | refJoin <hidden>
-|   |   |   |       | | | |   |   |   |   |       |       |   |   | catchException "fail"
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   <try>
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   | pushValue (\u1 -> (\u2 -> (\u3 -> (\u4 -> Term))))
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   | call <hidden>
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   | call <hidden>
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   | <hidden>:
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   | | call <hidden>
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   | | popException "fail"
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   | | refJoin <hidden>
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   | catchException "fail"
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   |   <try>
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   |   | pushValue (\u1 -> (\u2 -> (\u3 -> (\u4 -> (\u5 -> (u1 u3) (u4 u5))))))
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   |   | call <hidden>
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   |   | call <hidden>
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   |   | call <hidden>
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   |   | call <hidden>
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   |   | popException "fail"
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   |   | refJoin <hidden>
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   |   <handler>
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   |     pushInput
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   |     lift2Value Term
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   |     choicesBranch [(\u1 -> u1)]
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   |       <branch>
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   |       | pushValue (\u1 -> u1)
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   |       | refJoin <hidden>
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   |       <default>
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   |         raiseException "fail"
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |   <handler>
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |     pushInput
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |     lift2Value Term
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |     choicesBranch [(\u1 -> u1)]
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |       <branch>
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |       | call <hidden>
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |       | refJoin <hidden>
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |       <default>
-|   |   |   |       | | | |   |   |   |   |       |       |   |   |         raiseException "fail"
-|   |   |   |       | | | |   |   |   |   |       |       |   |   <handler>
-|   |   |   |       | | | |   |   |   |   |       |       |   |     pushInput
-|   |   |   |       | | | |   |   |   |   |       |       |   |     lift2Value Term
-|   |   |   |       | | | |   |   |   |   |       |       |   |     choicesBranch [(\u1 -> u1)]
-|   |   |   |       | | | |   |   |   |   |       |       |   |       <branch>
-|   |   |   |       | | | |   |   |   |   |       |       |   |       | call <hidden>
-|   |   |   |       | | | |   |   |   |   |       |       |   |       | refJoin <hidden>
-|   |   |   |       | | | |   |   |   |   |       |       |   |       <default>
-|   |   |   |       | | | |   |   |   |   |       |       |   |         raiseException "fail"
-|   |   |   |       | | | |   |   |   |   |       |       |   <handler>
-|   |   |   |       | | | |   |   |   |   |       |       |     pushInput
-|   |   |   |       | | | |   |   |   |   |       |       |     lift2Value Term
-|   |   |   |       | | | |   |   |   |   |       |       |     choicesBranch [(\u1 -> u1)]
-|   |   |   |       | | | |   |   |   |   |       |       |       <branch>
-|   |   |   |       | | | |   |   |   |   |       |       |       | call <hidden>
-|   |   |   |       | | | |   |   |   |   |       |       |       | refJoin <hidden>
-|   |   |   |       | | | |   |   |   |   |       |       |       <default>
-|   |   |   |       | | | |   |   |   |   |       |       |         raiseException "fail"
-|   |   |   |       | | | |   |   |   |   |       |       <default>
-|   |   |   |       | | | |   |   |   |   |       |         raiseException "fail"
-|   |   |   |       | | | |   |   |   |   |       <default>
-|   |   |   |       | | | |   |   |   |   |         raiseException "fail"
-|   |   |   |       | | | |   |   |   |   <handler>
-|   |   |   |       | | | |   |   |   |     loadInput
-|   |   |   |       | | | |   |   |   |     raiseException "fail"
-|   |   |   |       | | | |   |   |   <handler>
-|   |   |   |       | | | |   |   |     loadInput
-|   |   |   |       | | | |   |   |     raiseException "fail"
-|   |   |   |       | | | |   |   <handler>
-|   |   |   |       | | | |   |     pushInput
-|   |   |   |       | | | |   |     lift2Value Term
-|   |   |   |       | | | |   |     choicesBranch [(\u1 -> u1)]
-|   |   |   |       | | | |   |       <branch>
-|   |   |   |       | | | |   |       | catchException "fail"
-|   |   |   |       | | | |   |       |   <try>
-|   |   |   |       | | | |   |       |   | pushValue (\u1 -> (\u2 -> (\u3 -> (\u4 -> u4))))
-|   |   |   |       | | | |   |       |   | catchException "fail"
-|   |   |   |       | | | |   |       |   |   <try>
-|   |   |   |       | | | |   |       |   |   | pushValue (\u1 -> (\u2 -> u2))
-|   |   |   |       | | | |   |       |   |   | catchException "fail"
-|   |   |   |       | | | |   |       |   |   |   <try>
-|   |   |   |       | | | |   |       |   |   |   | pushValue (\u1 -> (\u2 -> (\u3 -> (\u4 -> (\u5 -> (\u6 -> 'w' : ('h' : ('i' : ('l' : ('e' : u6))))))))))
-|   |   |   |       | | | |   |       |   |   |   | read ('w' ==)
-|   |   |   |       | | | |   |       |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |   |   |   | read ('h' ==)
-|   |   |   |       | | | |   |       |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |   |   |   | read ('i' ==)
-|   |   |   |       | | | |   |       |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |   |   |   | read ('l' ==)
-|   |   |   |       | | | |   |       |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |   |   |   | read ('e' ==)
-|   |   |   |       | | | |   |       |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |   |   |   | call <hidden>
-|   |   |   |       | | | |   |       |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |   |   |   | popException "fail"
-|   |   |   |       | | | |   |       |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |   |   |   | call <hidden>
-|   |   |   |       | | | |   |       |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |   |   |   | popException "fail"
-|   |   |   |       | | | |   |       |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |   |   |   | call <hidden>
-|   |   |   |       | | | |   |       |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |   |   |   | call <hidden>
-|   |   |   |       | | | |   |       |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |   |   |   | call <hidden>
-|   |   |   |       | | | |   |       |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |   |   |   | popException "fail"
-|   |   |   |       | | | |   |       |   |   |   | refJoin <hidden>
-|   |   |   |       | | | |   |       |   |   |   <handler>
-|   |   |   |       | | | |   |       |   |   |     loadInput
-|   |   |   |       | | | |   |       |   |   |     raiseException "fail"
-|   |   |   |       | | | |   |       |   |   <handler>
-|   |   |   |       | | | |   |       |   |     loadInput
-|   |   |   |       | | | |   |       |   |     raiseException "fail"
-|   |   |   |       | | | |   |       |   <handler>
-|   |   |   |       | | | |   |       |     pushInput
-|   |   |   |       | | | |   |       |     lift2Value Term
-|   |   |   |       | | | |   |       |     choicesBranch [(\u1 -> u1)]
-|   |   |   |       | | | |   |       |       <branch>
-|   |   |   |       | | | |   |       |       | catchException "fail"
-|   |   |   |       | | | |   |       |       |   <try>
-|   |   |   |       | | | |   |       |       |   | catchException "fail"
-|   |   |   |       | | | |   |       |       |   |   <try>
-|   |   |   |       | | | |   |       |       |   |   | pushValue (\u1 -> (\u2 -> (\u3 -> (\u4 -> (\u5 -> (\u6 -> (\u7 -> (\u8 -> (\u9 -> (\u10 -> (\u11 -> (\u12 -> (\u13 -> u11)))))))))))))
-|   |   |   |       | | | |   |       |       |   |   | <hidden>:
-|   |   |   |       | | | |   |       |       |   |   | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |       |   |   | | call <hidden>
-|   |   |   |       | | | |   |       |       |   |   | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |       |   |   | | call <hidden>
-|   |   |   |       | | | |   |       |       |   |   | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |       |   |   | | <hidden>:
-|   |   |   |       | | | |   |       |       |   |   | | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |       |   |   | | | call <hidden>
-|   |   |   |       | | | |   |       |       |   |   | | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |       |   |   | | | read ('=' ==)
-|   |   |   |       | | | |   |       |       |   |   | | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |       |   |   | | | call <hidden>
-|   |   |   |       | | | |   |       |       |   |   | | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |       |   |   | | | call <hidden>
-|   |   |   |       | | | |   |       |       |   |   | | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |       |   |   | | | call <hidden>
-|   |   |   |       | | | |   |       |       |   |   | | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |       |   |   | | | <hidden>:
-|   |   |   |       | | | |   |       |       |   |   | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |       |   |   | | | | call <hidden>
-|   |   |   |       | | | |   |       |       |   |   | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |       |   |   | | | | read (';' ==)
-|   |   |   |       | | | |   |       |       |   |   | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |       |   |   | | | | call <hidden>
-|   |   |   |       | | | |   |       |       |   |   | | | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |       |   |   | | | | popException "fail"
-|   |   |   |       | | | |   |       |       |   |   | | | | popException "fail"
-|   |   |   |       | | | |   |       |       |   |   | | | | refJoin <hidden>
-|   |   |   |       | | | |   |       |       |   |   | | | catchException "fail"
-|   |   |   |       | | | |   |       |       |   |   | | |   <try>
-|   |   |   |       | | | |   |       |       |   |   | | |   | pushValue (\u1 -> (\u2 -> (\u3 -> (\u4 -> (\u5 -> (u1 u3) (u4 u5))))))
-|   |   |   |       | | | |   |       |       |   |   | | |   | call <hidden>
-|   |   |   |       | | | |   |       |       |   |   | | |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |       |   |   | | |   | call <hidden>
-|   |   |   |       | | | |   |       |       |   |   | | |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |       |   |   | | |   | call <hidden>
-|   |   |   |       | | | |   |       |       |   |   | | |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |       |   |   | | |   | call <hidden>
-|   |   |   |       | | | |   |       |       |   |   | | |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |       |   |   | | |   | popException "fail"
-|   |   |   |       | | | |   |       |       |   |   | | |   | refJoin <hidden>
-|   |   |   |       | | | |   |       |       |   |   | | |   <handler>
-|   |   |   |       | | | |   |       |       |   |   | | |     pushInput
-|   |   |   |       | | | |   |       |       |   |   | | |     lift2Value Term
-|   |   |   |       | | | |   |       |       |   |   | | |     choicesBranch [(\u1 -> u1)]
-|   |   |   |       | | | |   |       |       |   |   | | |       <branch>
-|   |   |   |       | | | |   |       |       |   |   | | |       | pushValue (\u1 -> u1)
-|   |   |   |       | | | |   |       |       |   |   | | |       | refJoin <hidden>
-|   |   |   |       | | | |   |       |       |   |   | | |       <default>
-|   |   |   |       | | | |   |       |       |   |   | | |         raiseException "fail"
-|   |   |   |       | | | |   |       |       |   |   | | catchException "fail"
-|   |   |   |       | | | |   |       |       |   |   | |   <try>
-|   |   |   |       | | | |   |       |       |   |   | |   | pushValue (\u1 -> (\u2 -> (\u3 -> (\u4 -> (\u5 -> (u1 u3) (u4 u5))))))
-|   |   |   |       | | | |   |       |       |   |   | |   | call <hidden>
-|   |   |   |       | | | |   |       |       |   |   | |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |       |   |   | |   | call <hidden>
-|   |   |   |       | | | |   |       |       |   |   | |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |       |   |   | |   | call <hidden>
-|   |   |   |       | | | |   |       |       |   |   | |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |       |   |   | |   | call <hidden>
-|   |   |   |       | | | |   |       |       |   |   | |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |       |   |   | |   | popException "fail"
-|   |   |   |       | | | |   |       |       |   |   | |   | refJoin <hidden>
-|   |   |   |       | | | |   |       |       |   |   | |   <handler>
-|   |   |   |       | | | |   |       |       |   |   | |     pushInput
-|   |   |   |       | | | |   |       |       |   |   | |     lift2Value Term
-|   |   |   |       | | | |   |       |       |   |   | |     choicesBranch [(\u1 -> u1)]
-|   |   |   |       | | | |   |       |       |   |   | |       <branch>
-|   |   |   |       | | | |   |       |       |   |   | |       | pushValue (\u1 -> u1)
-|   |   |   |       | | | |   |       |       |   |   | |       | refJoin <hidden>
-|   |   |   |       | | | |   |       |       |   |   | |       <default>
-|   |   |   |       | | | |   |       |       |   |   | |         raiseException "fail"
-|   |   |   |       | | | |   |       |       |   |   | catchException "fail"
-|   |   |   |       | | | |   |       |       |   |   |   <try>
-|   |   |   |       | | | |   |       |       |   |   |   | pushValue (\u1 -> (\u2 -> Term))
-|   |   |   |       | | | |   |       |       |   |   |   | catchException "fail"
-|   |   |   |       | | | |   |       |       |   |   |   |   <try>
-|   |   |   |       | | | |   |       |       |   |   |   |   | pushValue (\u1 -> (\u2 -> u2))
-|   |   |   |       | | | |   |       |       |   |   |   |   | catchException "fail"
-|   |   |   |       | | | |   |       |       |   |   |   |   |   <try>
-|   |   |   |       | | | |   |       |       |   |   |   |   |   | pushValue (\u1 -> (\u2 -> (\u3 -> (\u4 -> 'v' : ('a' : ('r' : u4))))))
-|   |   |   |       | | | |   |       |       |   |   |   |   |   | read ('v' ==)
-|   |   |   |       | | | |   |       |       |   |   |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |       |   |   |   |   |   | read ('a' ==)
-|   |   |   |       | | | |   |       |       |   |   |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |       |   |   |   |   |   | read ('r' ==)
-|   |   |   |       | | | |   |       |       |   |   |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |       |   |   |   |   |   | call <hidden>
-|   |   |   |       | | | |   |       |       |   |   |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |       |   |   |   |   |   | popException "fail"
-|   |   |   |       | | | |   |       |       |   |   |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |       |   |   |   |   |   | call <hidden>
-|   |   |   |       | | | |   |       |       |   |   |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |       |   |   |   |   |   | popException "fail"
-|   |   |   |       | | | |   |       |       |   |   |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |       |   |   |   |   |   | call <hidden>
-|   |   |   |       | | | |   |       |       |   |   |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |       |   |   |   |   |   | popException "fail"
-|   |   |   |       | | | |   |       |       |   |   |   |   |   | refJoin <hidden>
-|   |   |   |       | | | |   |       |       |   |   |   |   |   <handler>
-|   |   |   |       | | | |   |       |       |   |   |   |   |     loadInput
-|   |   |   |       | | | |   |       |       |   |   |   |   |     raiseException "fail"
-|   |   |   |       | | | |   |       |       |   |   |   |   <handler>
-|   |   |   |       | | | |   |       |       |   |   |   |     loadInput
-|   |   |   |       | | | |   |       |       |   |   |   |     raiseException "fail"
-|   |   |   |       | | | |   |       |       |   |   |   <handler>
-|   |   |   |       | | | |   |       |       |   |   |     pushInput
-|   |   |   |       | | | |   |       |       |   |   |     lift2Value Term
-|   |   |   |       | | | |   |       |       |   |   |     choicesBranch [(\u1 -> u1)]
-|   |   |   |       | | | |   |       |       |   |   |       <branch>
-|   |   |   |       | | | |   |       |       |   |   |       | call <hidden>
-|   |   |   |       | | | |   |       |       |   |   |       | refJoin <hidden>
-|   |   |   |       | | | |   |       |       |   |   |       <default>
-|   |   |   |       | | | |   |       |       |   |   |         raiseException "fail"
-|   |   |   |       | | | |   |       |       |   |   <handler>
-|   |   |   |       | | | |   |       |       |   |     loadInput
-|   |   |   |       | | | |   |       |       |   |     raiseException "fail"
-|   |   |   |       | | | |   |       |       |   <handler>
-|   |   |   |       | | | |   |       |       |     pushInput
-|   |   |   |       | | | |   |       |       |     lift2Value Term
-|   |   |   |       | | | |   |       |       |     choicesBranch [(\u1 -> u1)]
-|   |   |   |       | | | |   |       |       |       <branch>
-|   |   |   |       | | | |   |       |       |       | pushValue (\u1 -> (\u2 -> u1))
-|   |   |   |       | | | |   |       |       |       | call <hidden>
-|   |   |   |       | | | |   |       |       |       | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |       |       | call <hidden>
-|   |   |   |       | | | |   |       |       |       | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | | |   |       |       |       | refJoin <hidden>
-|   |   |   |       | | | |   |       |       |       <default>
-|   |   |   |       | | | |   |       |       |         raiseException "fail"
-|   |   |   |       | | | |   |       |       <default>
-|   |   |   |       | | | |   |       |         raiseException "fail"
-|   |   |   |       | | | |   |       <default>
-|   |   |   |       | | | |   |         raiseException "fail"
-|   |   |   |       | | | |   <handler>
-|   |   |   |       | | | |     pushInput
-|   |   |   |       | | | |     lift2Value Term
-|   |   |   |       | | | |     choicesBranch [(\u1 -> u1)]
-|   |   |   |       | | | |       <branch>
-|   |   |   |       | | | |       | pushValue (\u1 -> u1)
-|   |   |   |       | | | |       | refJoin <hidden>
-|   |   |   |       | | | |       <default>
-|   |   |   |       | | | |         raiseException "fail"
-|   |   |   |       | | | catchException "fail"
-|   |   |   |       | | |   <try>
-|   |   |   |       | | |   | pushValue (\u1 -> (\u2 -> (\u3 -> Term)))
-|   |   |   |       | | |   | read (':' ==)
-|   |   |   |       | | |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | |   | call <hidden>
-|   |   |   |       | | |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | |   | call <hidden>
-|   |   |   |       | | |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | | |   | popException "fail"
-|   |   |   |       | | |   | refJoin <hidden>
-|   |   |   |       | | |   <handler>
-|   |   |   |       | | |     pushInput
-|   |   |   |       | | |     lift2Value Term
-|   |   |   |       | | |     choicesBranch [(\u1 -> u1)]
-|   |   |   |       | | |       <branch>
-|   |   |   |       | | |       | call <hidden>
-|   |   |   |       | | |       | refJoin <hidden>
-|   |   |   |       | | |       <default>
-|   |   |   |       | | |         raiseException "fail"
-|   |   |   |       | | catchException "fail"
-|   |   |   |       | |   <try>
-|   |   |   |       | |   | pushValue (\u1 -> (\u2 -> (\u3 -> (\u4 -> (\u5 -> Term)))))
-|   |   |   |       | |   | call <hidden>
-|   |   |   |       | |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | |   | <hidden>:
-|   |   |   |       | |   | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | |   | | call <hidden>
-|   |   |   |       | |   | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | |   | | <hidden>:
-|   |   |   |       | |   | | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | |   | | | call <hidden>
-|   |   |   |       | |   | | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | |   | | | popException "fail"
-|   |   |   |       | |   | | | refJoin <hidden>
-|   |   |   |       | |   | | catchException "fail"
-|   |   |   |       | |   | |   <try>
-|   |   |   |       | |   | |   | pushValue (\u1 -> (\u2 -> (\u3 -> (\u4 -> (\u5 -> u4 u5)))))
-|   |   |   |       | |   | |   | read (',' ==)
-|   |   |   |       | |   | |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | |   | |   | call <hidden>
-|   |   |   |       | |   | |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | |   | |   | call <hidden>
-|   |   |   |       | |   | |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | |   | |   | call <hidden>
-|   |   |   |       | |   | |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | |   | |   | popException "fail"
-|   |   |   |       | |   | |   | refJoin <hidden>
-|   |   |   |       | |   | |   <handler>
-|   |   |   |       | |   | |     pushInput
-|   |   |   |       | |   | |     lift2Value Term
-|   |   |   |       | |   | |     choicesBranch [(\u1 -> u1)]
-|   |   |   |       | |   | |       <branch>
-|   |   |   |       | |   | |       | pushValue (\u1 -> u1)
-|   |   |   |       | |   | |       | refJoin <hidden>
-|   |   |   |       | |   | |       <default>
-|   |   |   |       | |   | |         raiseException "fail"
-|   |   |   |       | |   | catchException "fail"
-|   |   |   |       | |   |   <try>
-|   |   |   |       | |   |   | pushValue (\u1 -> (\u2 -> (\u3 -> (\u4 -> (\u5 -> (\u6 -> Term))))))
-|   |   |   |       | |   |   | read ('[' ==)
-|   |   |   |       | |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | |   |   | call <hidden>
-|   |   |   |       | |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | |   |   | read Term
-|   |   |   |       | |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | |   |   | <hidden>:
-|   |   |   |       | |   |   | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | |   |   | | read (']' ==)
-|   |   |   |       | |   |   | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | |   |   | | call <hidden>
-|   |   |   |       | |   |   | | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | |   |   | | popException "fail"
-|   |   |   |       | |   |   | | refJoin <hidden>
-|   |   |   |       | |   |   | catchException "fail"
-|   |   |   |       | |   |   |   <try>
-|   |   |   |       | |   |   |   | pushValue (\u1 -> (\u2 -> (\u3 -> u2 u3)))
-|   |   |   |       | |   |   |   | call <hidden>
-|   |   |   |       | |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | |   |   |   | call <hidden>
-|   |   |   |       | |   |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       | |   |   |   | popException "fail"
-|   |   |   |       | |   |   |   | refJoin <hidden>
-|   |   |   |       | |   |   |   <handler>
-|   |   |   |       | |   |   |     pushInput
-|   |   |   |       | |   |   |     lift2Value Term
-|   |   |   |       | |   |   |     choicesBranch [(\u1 -> u1)]
-|   |   |   |       | |   |   |       <branch>
-|   |   |   |       | |   |   |       | pushValue (\u1 -> u1)
-|   |   |   |       | |   |   |       | refJoin <hidden>
-|   |   |   |       | |   |   |       <default>
-|   |   |   |       | |   |   |         raiseException "fail"
-|   |   |   |       | |   |   <handler>
-|   |   |   |       | |   |     pushInput
-|   |   |   |       | |   |     lift2Value Term
-|   |   |   |       | |   |     choicesBranch [(\u1 -> u1)]
-|   |   |   |       | |   |       <branch>
-|   |   |   |       | |   |       | call <hidden>
-|   |   |   |       | |   |       | refJoin <hidden>
-|   |   |   |       | |   |       <default>
-|   |   |   |       | |   |         raiseException "fail"
-|   |   |   |       | |   <handler>
-|   |   |   |       | |     pushInput
-|   |   |   |       | |     lift2Value Term
-|   |   |   |       | |     choicesBranch [(\u1 -> u1)]
-|   |   |   |       | |       <branch>
-|   |   |   |       | |       | call <hidden>
-|   |   |   |       | |       | refJoin <hidden>
-|   |   |   |       | |       <default>
-|   |   |   |       | |         raiseException "fail"
-|   |   |   |       | catchException "fail"
-|   |   |   |       |   <try>
-|   |   |   |       |   | pushValue (\u1 -> (\u2 -> (\u3 -> u2 u3)))
-|   |   |   |       |   | read Term
-|   |   |   |       |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       |   | call <hidden>
-|   |   |   |       |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-|   |   |   |       |   | popException "fail"
-|   |   |   |       |   | refJoin <hidden>
-|   |   |   |       |   <handler>
-|   |   |   |       |     pushInput
-|   |   |   |       |     lift2Value Term
-|   |   |   |       |     choicesBranch [(\u1 -> u1)]
-|   |   |   |       |       <branch>
-|   |   |   |       |       | pushValue (\u1 -> u1)
-|   |   |   |       |       | refJoin <hidden>
-|   |   |   |       |       <default>
-|   |   |   |       |         raiseException "fail"
-|   |   |   |       <handler>
-|   |   |   |         loadInput
-|   |   |   |         raiseException "fail"
-|   |   |   <handler>
-|   |   |     loadInput
-|   |   |     raiseException "fail"
-|   |   <handler>
-|   |     loadInput
-|   |     raiseException "fail"
-|   <handler>
-|     pushInput
-|     lift2Value Term
-|     choicesBranch [(\u1 -> u1)]
-|       <branch>
-|       | pushValue (\u1 -> u1)
-|       | refJoin <hidden>
-|       <default>
-|         raiseException "fail"
-catchException "fail"
-  <try>
-  | pushValue (\u1 -> (\u2 -> (\u3 -> u2 u3)))
-  | <hidden>:
-  | | lift2Value (\u1 -> (\u2 -> u1 u2))
-  | | call <hidden>
-  | | lift2Value (\u1 -> (\u2 -> u1 u2))
-  | | popException "fail"
-  | | refJoin <hidden>
-  | catchException "fail"
-  |   <try>
-  |   | pushValue (\u1 -> (\u2 -> (\u3 -> Term)))
-  |   | read Term
-  |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-  |   | call <hidden>
-  |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-  |   | <hidden>:
-  |   | | lift2Value (\u1 -> (\u2 -> u1 u2))
-  |   | | popException "fail"
-  |   | | refJoin <hidden>
-  |   | catchException "fail"
-  |   |   <try>
-  |   |   | pushValue (\u1 -> (\u2 -> (\u3 -> u2 u3)))
-  |   |   | call <hidden>
-  |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-  |   |   | call <hidden>
-  |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-  |   |   | popException "fail"
-  |   |   | refJoin <hidden>
-  |   |   <handler>
-  |   |     pushInput
-  |   |     lift2Value Term
-  |   |     choicesBranch [(\u1 -> u1)]
-  |   |       <branch>
-  |   |       | pushValue (\u1 -> u1)
-  |   |       | refJoin <hidden>
-  |   |       <default>
-  |   |         raiseException "fail"
-  |   <handler>
-  |     pushInput
-  |     lift2Value Term
-  |     choicesBranch [(\u1 -> u1)]
-  |       <branch>
-  |       | pushValue (\u1 -> (\u2 -> (\u3 -> (\u4 -> (\u5 -> u5)))))
-  |       | catchException "fail"
-  |       |   <try>
-  |       |   | pushValue (\u1 -> (\u2 -> '/' : ('/' : Term)))
-  |       |   | read ('/' ==)
-  |       |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-  |       |   | read ('/' ==)
-  |       |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-  |       |   | popException "fail"
-  |       |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-  |       |   | call <hidden>
-  |       |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-  |       |   | <hidden>:
-  |       |   | | lift2Value (\u1 -> (\u2 -> u1 u2))
-  |       |   | | call <hidden>
-  |       |   | | lift2Value (\u1 -> (\u2 -> u1 u2))
-  |       |   | | call <hidden>
-  |       |   | | lift2Value (\u1 -> (\u2 -> u1 u2))
-  |       |   | | refJoin <hidden>
-  |       |   | catchException "fail"
-  |       |   |   <try>
-  |       |   |   | pushValue (\u1 -> (\u2 -> (\u3 -> u2 u3)))
-  |       |   |   | read Term
-  |       |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-  |       |   |   | call <hidden>
-  |       |   |   | lift2Value (\u1 -> (\u2 -> u1 u2))
-  |       |   |   | popException "fail"
-  |       |   |   | refJoin <hidden>
-  |       |   |   <handler>
-  |       |   |     pushInput
-  |       |   |     lift2Value Term
-  |       |   |     choicesBranch [(\u1 -> u1)]
-  |       |   |       <branch>
-  |       |   |       | pushValue (\u1 -> u1)
-  |       |   |       | refJoin <hidden>
-  |       |   |       <default>
-  |       |   |         raiseException "fail"
-  |       |   <handler>
-  |       |     loadInput
-  |       |     raiseException "fail"
-  |       <default>
-  |         raiseException "fail"
-  <handler>
-    pushInput
-    lift2Value Term
-    choicesBranch [(\u1 -> u1)]
-      <branch>
-      | pushValue (\u1 -> u1)
-      | refJoin <hidden>
-      <default>
-        raiseException "fail"
+| | |   minReads=(Right 0)
+| | |   mayRaise=[]
+| | <ko>
+| | | loadInput
+| | |   minReads=(Left ExceptionFailure)
+| | |   mayRaise=[ExceptionFailure]
+| | | fail fromList []
+| | |   minReads=(Left ExceptionFailure)
+| | |   mayRaise=[ExceptionFailure]
+let <hidden>
+  minReads=(Right 4)
+  mayRaise=[ExceptionFailure]
+| pushValue (\u1 -> (\u2 -> u1))
+|   minReads=(Right 4)
+|   mayRaise=[ExceptionFailure]
+| pushValue (\u1 -> (\u2 -> u1))
+|   minReads=(Right 4)
+|   mayRaise=[ExceptionFailure]
+| pushValue (\u1 -> u1)
+|   minReads=(Right 4)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 4)
+|   mayRaise=[ExceptionFailure]
+| pushValue (\u1 -> (\u2 -> u1))
+|   minReads=(Right 4)
+|   mayRaise=[ExceptionFailure]
+| pushValue (\u1 -> (\u2 -> u1))
+|   minReads=(Right 4)
+|   mayRaise=[ExceptionFailure]
+| pushValue '{'
+|   minReads=(Right 4)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 4)
+|   mayRaise=[ExceptionFailure]
+| read ('{' ==)
+|   minReads=(Right 4)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 3)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 3)
+|   mayRaise=[ExceptionFailure]
+| call <hidden>
+|   minReads=(Right 3)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| pushValue (\u1 -> (\u2 -> u1))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| pushValue (\u1 -> u1)
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| pushValue ((\u1 -> (\u2 -> (\u3 -> (u1 u3) u2))) (\u1 -> (\u2 -> u1 u2)))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| call <hidden>
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 0)
+|   mayRaise=[]
+| call <hidden>
+|   minReads=(Right 0)
+|   mayRaise=[]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 0)
+|   mayRaise=[]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 0)
+|   mayRaise=[]
+| call <hidden>
+|   minReads=(Right 0)
+|   mayRaise=[]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| pushValue (\u1 -> (\u2 -> u1))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| pushValue (\u1 -> (\u2 -> u1))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| pushValue '}'
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| read ('}' ==)
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 0)
+|   mayRaise=[]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 0)
+|   mayRaise=[]
+| call <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=[]
+let <hidden>
+  minReads=(Right 5)
+  mayRaise=[ExceptionFailure]
+| pushValue (\u1 -> (\u2 -> u1))
+|   minReads=(Right 5)
+|   mayRaise=[ExceptionFailure]
+| pushValue (\u1 -> (\u2 -> u1))
+|   minReads=(Right 5)
+|   mayRaise=[ExceptionFailure]
+| pushValue (\u1 -> u1)
+|   minReads=(Right 5)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 5)
+|   mayRaise=[ExceptionFailure]
+| pushValue (\u1 -> (\u2 -> u1))
+|   minReads=(Right 5)
+|   mayRaise=[ExceptionFailure]
+| pushValue (\u1 -> (\u2 -> u1))
+|   minReads=(Right 5)
+|   mayRaise=[ExceptionFailure]
+| pushValue '['
+|   minReads=(Right 5)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 5)
+|   mayRaise=[ExceptionFailure]
+| read ('[' ==)
+|   minReads=(Right 5)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 4)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 4)
+|   mayRaise=[ExceptionFailure]
+| call <hidden>
+|   minReads=(Right 4)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 2)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 2)
+|   mayRaise=[ExceptionFailure]
+| pushValue (\u1 -> (\u2 -> u1))
+|   minReads=(Right 2)
+|   mayRaise=[ExceptionFailure]
+| pushValue (\u1 -> u1)
+|   minReads=(Right 2)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 2)
+|   mayRaise=[ExceptionFailure]
+| call <hidden>
+|   minReads=(Right 2)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| pushValue (\u1 -> (\u2 -> u1))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| pushValue (\u1 -> u1)
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| pushValue ((\u1 -> (\u2 -> (\u3 -> (u1 u3) u2))) (\u1 -> (\u2 -> u1 u2)))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| pushValue Term
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| call <hidden>
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| pushValue Term
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| pushValue (\u1 -> (\u2 -> u1))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| pushValue (\u1 -> (\u2 -> u1))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| pushValue ']'
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| read (']' ==)
+|   minReads=(Right 1)
+|   mayRaise=[ExceptionFailure]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 0)
+|   mayRaise=[]
+| lift2Value (\u1 -> (\u2 -> u1 u2))
+|   minReads=(Right 0)
+|   mayRaise=[]
+| call <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=[]
+pushValue Term
+  minReads=(Right 1)
+  mayRaise=[ExceptionFailure]
+pushValue (\u1 -> (\u2 -> u1))
+  minReads=(Right 1)
+  mayRaise=[ExceptionFailure]
+pushValue (\u1 -> (\u2 -> u1))
+  minReads=(Right 1)
+  mayRaise=[ExceptionFailure]
+pushValue (\u1 -> u1)
+  minReads=(Right 1)
+  mayRaise=[ExceptionFailure]
+lift2Value (\u1 -> (\u2 -> u1 u2))
+  minReads=(Right 1)
+  mayRaise=[ExceptionFailure]
+call <hidden>
+  minReads=(Right 1)
+  mayRaise=[ExceptionFailure]
+lift2Value (\u1 -> (\u2 -> u1 u2))
+  minReads=(Right 0)
+  mayRaise=[]
+pushValue (\u1 -> (\u2 -> u1))
+  minReads=(Right 0)
+  mayRaise=[]
+pushValue (\u1 -> u1)
+  minReads=(Right 0)
+  mayRaise=[]
+lift2Value (\u1 -> (\u2 -> u1 u2))
+  minReads=(Right 0)
+  mayRaise=[]
+pushValue ((\u1 -> (\u2 -> (\u3 -> (u1 u3) u2))) (\u1 -> (\u2 -> u1 u2)))
+  minReads=(Right 0)
+  mayRaise=[]
+call <hidden>
+  minReads=(Right 0)
+  mayRaise=[]
+lift2Value (\u1 -> (\u2 -> u1 u2))
+  minReads=(Right 0)
+  mayRaise=[]
+call <hidden>
+  minReads=(Right 0)
+  mayRaise=[]
+lift2Value (\u1 -> (\u2 -> u1 u2))
+  minReads=(Right 0)
+  mayRaise=[]
+lift2Value (\u1 -> (\u2 -> u1 u2))
+  minReads=(Right 0)
+  mayRaise=[]
+call <hidden>
+  minReads=(Right 0)
+  mayRaise=[]
+lift2Value (\u1 -> (\u2 -> u1 u2))
+  minReads=(Right 0)
+  mayRaise=[]
+lift2Value (\u1 -> (\u2 -> u1 u2))
+  minReads=(Right 0)
+  mayRaise=[]
+lift2Value (\u1 -> (\u2 -> u1 u2))
+  minReads=(Right 0)
+  mayRaise=[]
+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=[]
+| <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 fromList []
+| | | |   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 fromList [FailureEnd]
+| | | |   minReads=(Left ExceptionFailure)
+| | | |   mayRaise=[ExceptionFailure]
+| | | <default>
+| | | | fail fromList []
+| | | |   minReads=(Left ExceptionFailure)
+| | | |   mayRaise=[ExceptionFailure]