copyright: comply with REUSE-3.0
[haskell/symantic-parser.git] / test / Golden / Grammar / OptimizeGrammar / G14.expected.txt
index 3fbc6b60fb32c24440095526044086ab9db0e2a3..8e1aeccd84713af4896d2b892e9b0a4ee40ecc13 100644 (file)
 lets
-+ let <hidden>
++ let name
 | ` <*>
 |   + <*>
 |   | + pure (\x_0 -> \x_1 -> x_1)
-|   | ` ref <hidden>
+|   | ` ref name
 |   ` <|>
 |     + <*>
 |     | + pure (\x_0 -> GHC.Tuple.())
-|     | ` ref <hidden>
-|     ` ref <hidden>
-+ let <hidden>
+|     | ` ref name
+|     ` ref name
++ let name
+| ` <*>
+|   + <*>
+|   | + pure (\x_0 -> \x_1 -> GHC.Tuple.())
+|   | ` ref name
+|   ` chainPost
+|     + pure GHC.Tuple.()
+|     ` <*>
+|       + pure (\x_0 -> \x_1 -> x_1)
+|       ` ref name
++ let name
 | ` <*>
 |   + <*>
 |   | + <*>
-|   | | + <*>
-|   | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> x_3)
-|   | | | ` ref <hidden>
-|   | | ` ref <hidden>
-|   | ` ref <hidden>
-|   ` ref <hidden>
-+ let <hidden>
+|   | | + pure (\x_0 -> \x_1 -> \x_2 -> x_2)
+|   | | ` ref name
+|   | ` chainPost
+|   |   + ref name
+|   |   ` <*>
+|   |     + <*>
+|   |     | + <*>
+|   |     | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> x_3)
+|   |     | | ` satisfy ((GHC.Classes.==) '!')
+|   |     | ` ref name
+|   |     ` ref name
+|   ` ref name
++ let name
 | ` <*>
 |   + <*>
 |   | + <*>
 |   | | + <*>
 |   | | | + <*>
 |   | | | | + <*>
-|   | | | | | + <*>
-|   | | | | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> \x_4 -> \x_5 -> \x_6 -> x_4)
-|   | | | | | | ` satisfy
-|   | | | | | ` ref <hidden>
-|   | | | | ` ref <hidden>
-|   | | | ` ref <hidden>
-|   | | ` ref <hidden>
-|   | ` satisfy
-|   ` ref <hidden>
-+ let <hidden>
+|   | | | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> \x_4 -> \x_5 -> GHC.Tuple.())
+|   | | | | | ` satisfy ((GHC.Classes.==) '[')
+|   | | | | ` ref name
+|   | | | ` ref name
+|   | | ` chainPost
+|   | |   + pure GHC.Tuple.()
+|   | |   ` <*>
+|   | |     + pure (\x_0 -> \x_1 -> x_1)
+|   | |     ` ref name
+|   | ` satisfy ((GHC.Classes.==) ']')
+|   ` ref name
++ let name
 | ` <*>
 |   + <*>
 |   | + <*>
 |   | | + <*>
 |   | | | + <*>
 |   | | | | + <*>
-|   | | | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> \x_4 -> \x_5 -> GHC.Tuple.())
-|   | | | | | ` satisfy
-|   | | | | ` ref <hidden>
-|   | | | ` ref <hidden>
-|   | | ` ref <hidden>
-|   | ` satisfy
-|   ` ref <hidden>
-+ let <hidden>
+|   | | | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> \x_4 -> \x_5 -> x_3)
+|   | | | | | ` satisfy ((GHC.Classes.==) '{')
+|   | | | | ` ref name
+|   | | | ` chainPost
+|   | | |   + ref name
+|   | | |   ` <*>
+|   | | |     + pure (\x_0 -> \x_1 -> x_1)
+|   | | |     ` <|>
+|   | | |       + <*>
+|   | | |       | + <*>
+|   | | |       | | + pure (\x_0 -> \x_1 -> x_1)
+|   | | |       | | ` try
+|   | | |       | |   ` <*>
+|   | | |       | |     + <*>
+|   | | |       | |     | + pure (\x_0 -> \x_1 -> (GHC.Types.:) 'i' ((GHC.Types.:) 'f' GHC.Types.[]))
+|   | | |       | |     | ` satisfy ((GHC.Classes.==) 'i')
+|   | | |       | |     ` satisfy ((GHC.Classes.==) 'f')
+|   | | |       | ` ref name
+|   | | |       ` <|>
+|   | | |         + <*>
+|   | | |         | + <*>
+|   | | |         | | + <*>
+|   | | |         | | | + <*>
+|   | | |         | | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> x_3)
+|   | | |         | | | | ` try
+|   | | |         | | | |   ` <*>
+|   | | |         | | | |     + <*>
+|   | | |         | | | |     | + <*>
+|   | | |         | | | |     | | + <*>
+|   | | |         | | | |     | | | + <*>
+|   | | |         | | | |     | | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> \x_4 -> (GHC.Types.:) 'w' ((GHC.Types.:) 'h' ((GHC.Types.:) 'i' ((GHC.Types.:) 'l' ((GHC.Types.:) 'e' GHC.Types.[])))))
+|   | | |         | | | |     | | | | ` satisfy ((GHC.Classes.==) 'w')
+|   | | |         | | | |     | | | ` satisfy ((GHC.Classes.==) 'h')
+|   | | |         | | | |     | | ` satisfy ((GHC.Classes.==) 'i')
+|   | | |         | | | |     | ` satisfy ((GHC.Classes.==) 'l')
+|   | | |         | | | |     ` satisfy ((GHC.Classes.==) 'e')
+|   | | |         | | | ` ref name
+|   | | |         | | ` ref name
+|   | | |         | ` rec name
+|   | | |         ` <|>
+|   | | |           + try
+|   | | |           | ` <*>
+|   | | |           |   + <*>
+|   | | |           |   | + <*>
+|   | | |           |   | | + <*>
+|   | | |           |   | | | + <*>
+|   | | |           |   | | | | + <*>
+|   | | |           |   | | | | | + <*>
+|   | | |           |   | | | | | | + <*>
+|   | | |           |   | | | | | | | + <*>
+|   | | |           |   | | | | | | | | + <*>
+|   | | |           |   | | | | | | | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> \x_4 -> \x_5 -> \x_6 -> \x_7 -> \x_8 -> \x_9 -> x_8)
+|   | | |           |   | | | | | | | | | ` <|>
+|   | | |           |   | | | | | | | | |   + <*>
+|   | | |           |   | | | | | | | | |   | + <*>
+|   | | |           |   | | | | | | | | |   | | + pure (\x_0 -> \x_1 -> GHC.Tuple.())
+|   | | |           |   | | | | | | | | |   | | ` try
+|   | | |           |   | | | | | | | | |   | |   ` <*>
+|   | | |           |   | | | | | | | | |   | |     + <*>
+|   | | |           |   | | | | | | | | |   | |     | + <*>
+|   | | |           |   | | | | | | | | |   | |     | | + pure (\x_0 -> \x_1 -> \x_2 -> (GHC.Types.:) 'v' ((GHC.Types.:) 'a' ((GHC.Types.:) 'r' GHC.Types.[])))
+|   | | |           |   | | | | | | | | |   | |     | | ` satisfy ((GHC.Classes.==) 'v')
+|   | | |           |   | | | | | | | | |   | |     | ` satisfy ((GHC.Classes.==) 'a')
+|   | | |           |   | | | | | | | | |   | |     ` satisfy ((GHC.Classes.==) 'r')
+|   | | |           |   | | | | | | | | |   | ` ref name
+|   | | |           |   | | | | | | | | |   ` ref name
+|   | | |           |   | | | | | | | | ` ref name
+|   | | |           |   | | | | | | | ` chainPost
+|   | | |           |   | | | | | | |   + ref name
+|   | | |           |   | | | | | | |   ` <*>
+|   | | |           |   | | | | | | |     + <*>
+|   | | |           |   | | | | | | |     | + <*>
+|   | | |           |   | | | | | | |     | | + pure (\x_0 -> \x_1 -> \x_2 -> x_0 x_2)
+|   | | |           |   | | | | | | |     | | ` ref name
+|   | | |           |   | | | | | | |     | ` ref name
+|   | | |           |   | | | | | | |     ` ref name
+|   | | |           |   | | | | | | ` ref name
+|   | | |           |   | | | | | ` satisfy ((GHC.Classes.==) '=')
+|   | | |           |   | | | | ` ref name
+|   | | |           |   | | | ` ref name
+|   | | |           |   | | ` chainPost
+|   | | |           |   | |   + ref name
+|   | | |           |   | |   ` <*>
+|   | | |           |   | |     + <*>
+|   | | |           |   | |     | + <*>
+|   | | |           |   | |     | | + pure (\x_0 -> \x_1 -> \x_2 -> x_0 x_2)
+|   | | |           |   | |     | | ` ref name
+|   | | |           |   | |     | ` ref name
+|   | | |           |   | |     ` ref name
+|   | | |           |   | ` ref name
+|   | | |           |   ` ref name
+|   | | |           ` <*>
+|   | | |             + <*>
+|   | | |             | + pure (\x_0 -> \x_1 -> x_0)
+|   | | |             | ` ref name
+|   | | |             ` ref name
+|   | | ` ref name
+|   | ` satisfy ((GHC.Classes.==) '}')
+|   ` ref name
++ let name
 | ` <*>
 |   + <*>
 |   | + pure (\x_0 -> \x_1 -> '(')
-|   | ` satisfy
-|   ` ref <hidden>
-+ let <hidden>
+|   | ` satisfy ((GHC.Classes.==) '(')
+|   ` ref name
++ let name
 | ` <*>
 |   + <*>
 |   | + pure (\x_0 -> \x_1 -> ')')
-|   | ` satisfy
-|   ` ref <hidden>
-+ let <hidden>
+|   | ` satisfy ((GHC.Classes.==) ')')
+|   ` ref name
++ let name
 | ` <*>
 |   + <*>
 |   | + pure (\x_0 -> \x_1 -> ',')
-|   | ` satisfy
-|   ` ref <hidden>
-+ let <hidden>
+|   | ` satisfy ((GHC.Classes.==) ',')
+|   ` ref name
++ let name
 | ` <*>
 |   + <*>
 |   | + pure (\x_0 -> \x_1 -> ';')
-|   | ` satisfy
-|   ` ref <hidden>
-+ let <hidden>
-| ` <*>
-|   + <*>
-|   | + pure (\x_0 -> \x_1 -> GHC.Tuple.())
-|   | ` ref <hidden>
-|   ` ref <hidden>
-+ let <hidden>
+|   | ` satisfy ((GHC.Classes.==) ';')
+|   ` ref name
++ let name
 | ` <*>
 |   + <*>
 |   | + pure (\x_0 -> \x_1 -> x_1)
-|   | ` satisfy
-|   ` ref <hidden>
-+ let <hidden>
+|   | ` satisfy GHC.Unicode.isSpace
+|   ` ref name
++ let name
 | ` <*>
 |   + <*>
 |   | + pure (\x_0 -> \x_1 -> x_1)
@@ -93,14 +197,16 @@ lets
 |   |   ` <*>
 |   |     + <*>
 |   |     | + <*>
-|   |     | | + <*>
-|   |     | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> x_3)
-|   |     | | | ` satisfy
-|   |     | | ` ref <hidden>
-|   |     | ` ref <hidden>
-|   |     ` ref <hidden>
-|   ` ref <hidden>
-+ let <hidden>
+|   |     | | + pure (\x_0 -> \x_1 -> \x_2 -> x_2)
+|   |     | | ` satisfy Parsers.Nandlang.nandIdentStart
+|   |     | ` chainPost
+|   |     |   + ref name
+|   |     |   ` <*>
+|   |     |     + pure (\x_0 -> \x_1 -> x_1)
+|   |     |     ` satisfy Parsers.Nandlang.nandIdentLetter
+|   |     ` ref name
+|   ` ref name
++ let name
 | ` <|>
 |   + <*>
 |   | + <*>
@@ -108,37 +214,37 @@ lets
 |   | | ` <|>
 |   | |   + <*>
 |   | |   | + pure (\x_0 -> '0')
-|   | |   | ` satisfy
+|   | |   | ` satisfy ((GHC.Classes.==) '0')
 |   | |   ` <*>
 |   | |     + pure (\x_0 -> '1')
-|   | |     ` satisfy
-|   | ` ref <hidden>
+|   | |     ` satisfy ((GHC.Classes.==) '1')
+|   | ` ref name
 |   ` <|>
 |     + <*>
 |     | + <*>
 |     | | + <*>
 |     | | | + <*>
 |     | | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> x_1)
-|     | | | | ` satisfy
+|     | | | | ` satisfy ((GHC.Classes.==) '\'')
 |     | | | ` <|>
 |     | | |   + <*>
 |     | | |   | + <*>
 |     | | |   | | + pure (\x_0 -> \x_1 -> x_1)
-|     | | |   | | ` satisfy
-|     | | |   | ` ref <hidden>
+|     | | |   | | ` satisfy Parsers.Nandlang.nandStringLetter
+|     | | |   | ` ref name
 |     | | |   ` <*>
 |     | | |     + <*>
 |     | | |     | + <*>
 |     | | |     | | + pure (\x_0 -> \x_1 -> \x_2 -> x_2)
-|     | | |     | | ` satisfy
-|     | | |     | ` satisfy
-|     | | |     ` ref <hidden>
-|     | | ` satisfy
-|     | ` ref <hidden>
+|     | | |     | | ` satisfy ((GHC.Classes.==) '\\')
+|     | | |     | ` satisfy (\t_0 -> ('0' GHC.Classes.== t_0) GHC.Classes.|| (('t' GHC.Classes.== t_0) GHC.Classes.|| (('n' GHC.Classes.== t_0) GHC.Classes.|| (('v' GHC.Classes.== t_0) GHC.Classes.|| (('f' GHC.Classes.== t_0) GHC.Classes.|| (('r' GHC.Classes.== t_0) GHC.Classes.|| GHC.Types.False))))))
+|     | | |     ` ref name
+|     | | ` satisfy ((GHC.Classes.==) '\'')
+|     | ` ref name
 |     ` <*>
 |       + <*>
 |       | + pure (\x_0 -> \x_1 -> x_1)
-|       | ` ref <hidden>
+|       | ` ref name
 |       ` <|>
 |         + <*>
 |         | + pure (\x_0 -> GHC.Tuple.())
@@ -147,264 +253,102 @@ lets
 |         |   | + <*>
 |         |   | | + <*>
 |         |   | | | + pure (\x_0 -> \x_1 -> \x_2 -> x_1)
-|         |   | | | ` ref <hidden>
+|         |   | | | ` ref name
 |         |   | | ` <|>
 |         |   | |   + <*>
 |         |   | |   | + <*>
 |         |   | |   | | + <*>
-|         |   | |   | | | + <*>
-|         |   | |   | | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> GHC.Tuple.())
-|         |   | |   | | | | ` rec <hidden>
-|         |   | |   | | | ` ref <hidden>
-|         |   | |   | | ` ref <hidden>
-|         |   | |   | ` ref <hidden>
-|         |   | |   ` ref <hidden>
-|         |   | ` ref <hidden>
-|         |   ` ref <hidden>
-|         ` ref <hidden>
-+ let <hidden>
+|         |   | |   | | | + pure (\x_0 -> \x_1 -> \x_2 -> GHC.Tuple.())
+|         |   | |   | | | ` rec name
+|         |   | |   | | ` chainPost
+|         |   | |   | |   + ref name
+|         |   | |   | |   ` <*>
+|         |   | |   | |     + <*>
+|         |   | |   | |     | + <*>
+|         |   | |   | |     | | + pure (\x_0 -> \x_1 -> \x_2 -> x_0 x_2)
+|         |   | |   | |     | | ` ref name
+|         |   | |   | |     | ` ref name
+|         |   | |   | |     ` rec name
+|         |   | |   | ` ref name
+|         |   | |   ` ref name
+|         |   | ` ref name
+|         |   ` ref name
+|         ` ref name
++ let name
 | ` <|>
 |   + <*>
 |   | + <*>
 |   | | + <*>
-|   | | | + <*>
-|   | | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> \x_4 -> x_0 x_2 (x_3 x_4))
-|   | | | | ` ref <hidden>
-|   | | | ` ref <hidden>
-|   | | ` rec <hidden>
-|   | ` rec <hidden>
-|   ` pure (\x_0 -> x_0)
-+ let <hidden>
-| ` <|>
-|   + <*>
-|   | + <*>
-|   | | + <*>
-|   | | | + <*>
-|   | | | | + <*>
-|   | | | | | + <*>
-|   | | | | | | + <*>
-|   | | | | | | | + <*>
-|   | | | | | | | | + <*>
-|   | | | | | | | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> \x_4 -> \x_5 -> \x_6 -> \x_7 -> \x_8 -> \x_9 -> x_8 x_9)
-|   | | | | | | | | | ` try
-|   | | | | | | | | |   ` <*>
-|   | | | | | | | | |     + <*>
-|   | | | | | | | | |     | + <*>
-|   | | | | | | | | |     | | + <*>
-|   | | | | | | | | |     | | | + <*>
-|   | | | | | | | | |     | | | | + <*>
-|   | | | | | | | | |     | | | | | + <*>
-|   | | | | | | | | |     | | | | | | + <*>
-|   | | | | | | | | |     | | | | | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> \x_4 -> \x_5 -> \x_6 -> \x_7 -> (GHC.Types.:) 'f' ((GHC.Types.:) 'u' ((GHC.Types.:) 'n' ((GHC.Types.:) 'c' ((GHC.Types.:) 't' ((GHC.Types.:) 'i' ((GHC.Types.:) 'o' ((GHC.Types.:) 'n' GHC.Types.[]))))))))
-|   | | | | | | | | |     | | | | | | | ` satisfy
-|   | | | | | | | | |     | | | | | | ` satisfy
-|   | | | | | | | | |     | | | | | ` satisfy
-|   | | | | | | | | |     | | | | ` satisfy
-|   | | | | | | | | |     | | | ` satisfy
-|   | | | | | | | | |     | | ` satisfy
-|   | | | | | | | | |     | ` satisfy
-|   | | | | | | | | |     ` satisfy
-|   | | | | | | | | ` ref <hidden>
-|   | | | | | | | ` ref <hidden>
-|   | | | | | | ` ref <hidden>
-|   | | | | | ` ref <hidden>
-|   | | | | ` <|>
-|   | | | |   + <*>
-|   | | | |   | + <*>
-|   | | | |   | | + <*>
-|   | | | |   | | | + pure (\x_0 -> \x_1 -> \x_2 -> GHC.Tuple.())
-|   | | | |   | | | ` satisfy
-|   | | | |   | | ` ref <hidden>
-|   | | | |   | ` ref <hidden>
-|   | | | |   ` ref <hidden>
-|   | | | ` ref <hidden>
-|   | | ` ref <hidden>
-|   | ` rec <hidden>
-|   ` pure (\x_0 -> x_0)
-+ let <hidden>
-| ` <|>
-|   + <*>
-|   | + <*>
-|   | | + <*>
-|   | | | + <*>
-|   | | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> \x_4 -> x_0 x_2 (x_3 x_4))
-|   | | | | ` ref <hidden>
-|   | | | ` ref <hidden>
-|   | | ` ref <hidden>
-|   | ` rec <hidden>
-|   ` pure (\x_0 -> x_0)
-+ let <hidden>
-| ` <|>
-|   + <*>
-|   | + <*>
-|   | | + <*>
-|   | | | + <*>
-|   | | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> \x_4 -> x_0 x_2 (x_3 x_4))
-|   | | | | ` ref <hidden>
-|   | | | ` ref <hidden>
-|   | | ` ref <hidden>
-|   | ` rec <hidden>
-|   ` pure (\x_0 -> x_0)
-+ let <hidden>
-| ` <|>
-|   + <*>
-|   | + <*>
-|   | | + <*>
-|   | | | + <*>
-|   | | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> \x_4 -> x_0 x_2 (x_3 x_4))
-|   | | | | ` ref <hidden>
-|   | | | ` ref <hidden>
-|   | | ` ref <hidden>
-|   | ` rec <hidden>
-|   ` pure (\x_0 -> x_0)
-+ let <hidden>
-| ` <|>
-|   + <*>
-|   | + <*>
-|   | | + <*>
-|   | | | + <*>
-|   | | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> \x_4 -> x_3 x_4)
-|   | | | | ` satisfy
-|   | | | ` ref <hidden>
-|   | | ` ref <hidden>
-|   | ` rec <hidden>
-|   ` pure (\x_0 -> x_0)
-+ let <hidden>
-| ` <|>
-|   + <*>
-|   | + <*>
-|   | | + pure (\x_0 -> \x_1 -> \x_2 -> x_1 x_2)
-|   | | ` <|>
-|   | |   + <*>
-|   | |   | + <*>
-|   | |   | | + pure (\x_0 -> \x_1 -> x_1)
-|   | |   | | ` try
-|   | |   | |   ` <*>
-|   | |   | |     + <*>
-|   | |   | |     | + pure (\x_0 -> \x_1 -> (GHC.Types.:) 'i' ((GHC.Types.:) 'f' GHC.Types.[]))
-|   | |   | |     | ` satisfy
-|   | |   | |     ` satisfy
-|   | |   | ` ref <hidden>
-|   | |   ` <|>
+|   | | | + pure (\x_0 -> \x_1 -> \x_2 -> GHC.Tuple.())
+|   | | | ` ref name
+|   | | ` chainPost
+|   | |   + ref name
+|   | |   ` <*>
 |   | |     + <*>
 |   | |     | + <*>
-|   | |     | | + <*>
-|   | |     | | | + <*>
-|   | |     | | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> x_3)
-|   | |     | | | | ` try
-|   | |     | | | |   ` <*>
-|   | |     | | | |     + <*>
-|   | |     | | | |     | + <*>
-|   | |     | | | |     | | + <*>
-|   | |     | | | |     | | | + <*>
-|   | |     | | | |     | | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> \x_4 -> (GHC.Types.:) 'w' ((GHC.Types.:) 'h' ((GHC.Types.:) 'i' ((GHC.Types.:) 'l' ((GHC.Types.:) 'e' GHC.Types.[])))))
-|   | |     | | | |     | | | | ` satisfy
-|   | |     | | | |     | | | ` satisfy
-|   | |     | | | |     | | ` satisfy
-|   | |     | | | |     | ` satisfy
-|   | |     | | | |     ` satisfy
-|   | |     | | | ` ref <hidden>
-|   | |     | | ` ref <hidden>
-|   | |     | ` rec <hidden>
-|   | |     ` <|>
-|   | |       + try
-|   | |       | ` <*>
-|   | |       |   + <*>
-|   | |       |   | + <*>
-|   | |       |   | | + <*>
-|   | |       |   | | | + <*>
-|   | |       |   | | | | + <*>
-|   | |       |   | | | | | + <*>
-|   | |       |   | | | | | | + <*>
-|   | |       |   | | | | | | | + <*>
-|   | |       |   | | | | | | | | + <*>
-|   | |       |   | | | | | | | | | + <*>
-|   | |       |   | | | | | | | | | | + <*>
-|   | |       |   | | | | | | | | | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> \x_4 -> \x_5 -> \x_6 -> \x_7 -> \x_8 -> \x_9 -> \x_10 -> \x_11 -> x_10)
-|   | |       |   | | | | | | | | | | | ` <|>
-|   | |       |   | | | | | | | | | | |   + <*>
-|   | |       |   | | | | | | | | | | |   | + <*>
-|   | |       |   | | | | | | | | | | |   | | + pure (\x_0 -> \x_1 -> GHC.Tuple.())
-|   | |       |   | | | | | | | | | | |   | | ` try
-|   | |       |   | | | | | | | | | | |   | |   ` <*>
-|   | |       |   | | | | | | | | | | |   | |     + <*>
-|   | |       |   | | | | | | | | | | |   | |     | + <*>
-|   | |       |   | | | | | | | | | | |   | |     | | + pure (\x_0 -> \x_1 -> \x_2 -> (GHC.Types.:) 'v' ((GHC.Types.:) 'a' ((GHC.Types.:) 'r' GHC.Types.[])))
-|   | |       |   | | | | | | | | | | |   | |     | | ` satisfy
-|   | |       |   | | | | | | | | | | |   | |     | ` satisfy
-|   | |       |   | | | | | | | | | | |   | |     ` satisfy
-|   | |       |   | | | | | | | | | | |   | ` ref <hidden>
-|   | |       |   | | | | | | | | | | |   ` ref <hidden>
-|   | |       |   | | | | | | | | | | ` ref <hidden>
-|   | |       |   | | | | | | | | | ` ref <hidden>
-|   | |       |   | | | | | | | | ` ref <hidden>
-|   | |       |   | | | | | | | ` ref <hidden>
-|   | |       |   | | | | | | ` satisfy
-|   | |       |   | | | | | ` ref <hidden>
-|   | |       |   | | | | ` ref <hidden>
-|   | |       |   | | | ` ref <hidden>
-|   | |       |   | | ` ref <hidden>
-|   | |       |   | ` ref <hidden>
-|   | |       |   ` ref <hidden>
-|   | |       ` <*>
-|   | |         + <*>
-|   | |         | + pure (\x_0 -> \x_1 -> x_0)
-|   | |         | ` ref <hidden>
-|   | |         ` ref <hidden>
-|   | ` rec <hidden>
-|   ` pure (\x_0 -> x_0)
-+ let <hidden>
-| ` <|>
-|   + <*>
-|   | + <*>
-|   | | + pure (\x_0 -> \x_1 -> \x_2 -> x_1 x_2)
-|   | | ` ref <hidden>
-|   | ` rec <hidden>
-|   ` pure (\x_0 -> x_0)
-+ let <hidden>
-| ` <|>
-|   + <*>
-|   | + <*>
-|   | | + pure (\x_0 -> \x_1 -> \x_2 -> x_1 x_2)
-|   | | ` ref <hidden>
-|   | ` rec <hidden>
-|   ` pure (\x_0 -> x_0)
-+ let <hidden>
-| ` <|>
-|   + <*>
-|   | + <*>
-|   | | + pure (\x_0 -> \x_1 -> \x_2 -> x_1 x_2)
-|   | | ` satisfy
-|   | ` rec <hidden>
-|   ` pure (\x_0 -> x_0)
-+ let <hidden>
-| ` <|>
-|   + <*>
-|   | + <*>
-|   | | + <*>
-|   | | | + <*>
-|   | | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> GHC.Tuple.())
-|   | | | | ` ref <hidden>
-|   | | | ` ref <hidden>
-|   | | ` ref <hidden>
-|   | ` ref <hidden>
-|   ` ref <hidden>
-+ let <hidden>
-| ` pure (GHC.Tuple.())
-+ let <hidden>
-| ` pure (GHC.Tuple.())
-+ let <hidden>
+|   | |     | | + pure (\x_0 -> \x_1 -> \x_2 -> x_0 x_2)
+|   | |     | | ` ref name
+|   | |     | ` ref name
+|   | |     ` ref name
+|   | ` ref name
+|   ` ref name
++ let name
 | ` pure (\x_0 -> \x_1 -> x_1)
-+ let <hidden>
-| ` satisfy
++ let name
+| ` pure GHC.Tuple.()
++ let name
+| ` pure GHC.Tuple.()
++ let name
+| ` satisfy (\t_0 -> ('0' GHC.Classes.== t_0) GHC.Classes.|| (('1' GHC.Classes.== t_0) GHC.Classes.|| (('2' GHC.Classes.== t_0) GHC.Classes.|| (('3' GHC.Classes.== t_0) GHC.Classes.|| (('4' GHC.Classes.== t_0) GHC.Classes.|| (('5' GHC.Classes.== t_0) GHC.Classes.|| (('6' GHC.Classes.== t_0) GHC.Classes.|| (('7' GHC.Classes.== t_0) GHC.Classes.|| (('8' GHC.Classes.== t_0) GHC.Classes.|| (('9' GHC.Classes.== t_0) GHC.Classes.|| GHC.Types.False))))))))))
 ` <*>
   + <*>
   | + <*>
   | | + <*>
-  | | | + <*>
-  | | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> \x_4 -> GHC.Show.show x_3)
-  | | | | ` ref <hidden>
-  | | | ` ref <hidden>
-  | | ` ref <hidden>
-  | ` ref <hidden>
+  | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> GHC.Show.show x_2)
+  | | | ` ref name
+  | | ` chainPost
+  | |   + ref name
+  | |   ` <*>
+  | |     + <*>
+  | |     | + <*>
+  | |     | | + <*>
+  | |     | | | + <*>
+  | |     | | | | + <*>
+  | |     | | | | | + <*>
+  | |     | | | | | | + <*>
+  | |     | | | | | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> \x_4 -> \x_5 -> \x_6 -> \x_7 -> \x_8 -> x_8)
+  | |     | | | | | | | ` try
+  | |     | | | | | | |   ` <*>
+  | |     | | | | | | |     + <*>
+  | |     | | | | | | |     | + <*>
+  | |     | | | | | | |     | | + <*>
+  | |     | | | | | | |     | | | + <*>
+  | |     | | | | | | |     | | | | + <*>
+  | |     | | | | | | |     | | | | | + <*>
+  | |     | | | | | | |     | | | | | | + <*>
+  | |     | | | | | | |     | | | | | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> \x_4 -> \x_5 -> \x_6 -> \x_7 -> (GHC.Types.:) 'f' ((GHC.Types.:) 'u' ((GHC.Types.:) 'n' ((GHC.Types.:) 'c' ((GHC.Types.:) 't' ((GHC.Types.:) 'i' ((GHC.Types.:) 'o' ((GHC.Types.:) 'n' GHC.Types.[]))))))))
+  | |     | | | | | | |     | | | | | | | ` satisfy ((GHC.Classes.==) 'f')
+  | |     | | | | | | |     | | | | | | ` satisfy ((GHC.Classes.==) 'u')
+  | |     | | | | | | |     | | | | | ` satisfy ((GHC.Classes.==) 'n')
+  | |     | | | | | | |     | | | | ` satisfy ((GHC.Classes.==) 'c')
+  | |     | | | | | | |     | | | ` satisfy ((GHC.Classes.==) 't')
+  | |     | | | | | | |     | | ` satisfy ((GHC.Classes.==) 'i')
+  | |     | | | | | | |     | ` satisfy ((GHC.Classes.==) 'o')
+  | |     | | | | | | |     ` satisfy ((GHC.Classes.==) 'n')
+  | |     | | | | | | ` ref name
+  | |     | | | | | ` ref name
+  | |     | | | | ` ref name
+  | |     | | | ` ref name
+  | |     | | ` <|>
+  | |     | |   + <*>
+  | |     | |   | + <*>
+  | |     | |   | | + <*>
+  | |     | |   | | | + pure (\x_0 -> \x_1 -> \x_2 -> GHC.Tuple.())
+  | |     | |   | | | ` satisfy ((GHC.Classes.==) ':')
+  | |     | |   | | ` ref name
+  | |     | |   | ` ref name
+  | |     | |   ` ref name
+  | |     | ` ref name
+  | |     ` ref name
+  | ` ref name
   ` eof