diff --git a/Hacking.md b/Hacking.md
--- a/Hacking.md
+++ b/Hacking.md
@@ -8,6 +8,13 @@
 make benchmarks/repl
 ```
 
+```bash
+make ghcid
+make parsers/ghcid
+make tests/ghcid
+make benchmarks/ghcid
+```
+
 ## Testing
 ```bash
 make tests
@@ -21,7 +28,11 @@
 
 ## Benchmarking
 
-### Profiling
+```bash
+make benchmarks b=Brainfuck/ByteString/hanoi/'*' BENCHMARK_OPTIONS=-n1
+```
+
+## Profiling
 
 #### Time
 ```bash
diff --git a/LICENSES/AGPL-3.0-or-later.txt b/LICENSES/AGPL-3.0-or-later.txt
new file mode 100644
--- /dev/null
+++ b/LICENSES/AGPL-3.0-or-later.txt
@@ -0,0 +1,235 @@
+GNU AFFERO GENERAL PUBLIC LICENSE
+Version 3, 19 November 2007
+
+Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+
+Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
+
+                            Preamble
+
+The GNU Affero General Public License is a free, copyleft license for software and other kinds of works, specifically designed to ensure cooperation with the community in the case of network server software.
+
+The licenses for most software and other practical works are designed to take away your freedom to share and change the works.  By contrast, our General Public Licenses are intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users.
+
+When we speak of free software, we are referring to freedom, not price.  Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things.
+
+Developers that use our General Public Licenses protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License which gives you legal permission to copy, distribute and/or modify the software.
+
+A secondary benefit of defending all users' freedom is that improvements made in alternate versions of the program, if they receive widespread use, become available for other developers to incorporate.  Many developers of free software are heartened and encouraged by the resulting cooperation.  However, in the case of software used on network servers, this result may fail to come about. The GNU General Public License permits making a modified version and letting the public access it on a server without ever releasing its source code to the public.
+
+The GNU Affero General Public License is designed specifically to ensure that, in such cases, the modified source code becomes available to the community.  It requires the operator of a network server to provide the source code of the modified version running there to the users of that server.  Therefore, public use of a modified version, on a publicly accessible server, gives the public access to the source code of the modified version.
+
+An older license, called the Affero General Public License and published by Affero, was designed to accomplish similar goals.  This is a different license, not a version of the Affero GPL, but Affero has released a new version of the Affero GPL which permits relicensing under this license.
+
+The precise terms and conditions for copying, distribution and modification follow.
+
+                       TERMS AND CONDITIONS
+
+0. Definitions.
+
+"This License" refers to version 3 of the GNU Affero General Public License.
+
+"Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks.
+
+"The Program" refers to any copyrightable work licensed under this License.  Each licensee is addressed as "you".  "Licensees" and "recipients" may be individuals or organizations.
+
+To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy.  The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work.
+
+A "covered work" means either the unmodified Program or a work based on the Program.
+
+To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy.  Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well.
+
+To "convey" a work means any kind of propagation that enables other parties to make or receive copies.  Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.
+
+An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License.  If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion.
+
+1. Source Code.
+The "source code" for a work means the preferred form of the work for making modifications to it.  "Object code" means any non-source form of a work.
+
+A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language.
+
+The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form.  A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it.
+
+The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities.  However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work.  For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source.
+
+The Corresponding Source for a work in source code form is that same work.
+
+2. Basic Permissions.
+All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met.  This License explicitly affirms your unlimited permission to run the unmodified Program.  The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work.  This License acknowledges your rights of fair use or other equivalent, as provided by copyright law.
+
+You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force.  You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright.  Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you.
+
+Conveying under any other circumstances is permitted solely under the conditions stated below.  Sublicensing is not allowed; section 10 makes it unnecessary.
+
+3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures.
+
+When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures.
+
+4. Conveying Verbatim Copies.
+You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program.
+
+You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.
+
+5. Conveying Modified Source Versions.
+You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7.  This requirement modifies the requirement in section 4 to "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy.  This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged.  This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so.
+
+A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit.  Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.
+
+6. Conveying Non-Source Forms.
+You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source.  This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b.
+
+    d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge.  You need not require recipients to copy the Corresponding Source along with the object code.  If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source.  Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d.
+
+A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work.
+
+A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling.  In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage.  For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product.  A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product.
+
+"Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source.  The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.
+
+If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information.  But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM).
+
+The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed.  Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network.
+
+Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying.
+
+7. Additional Terms.
+"Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law.  If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions.
+
+When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it.  (Additional permissions may be written to require their own removal in certain cases when you modify the work.)  You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission.
+
+Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors.
+
+All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10.  If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term.  If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying.
+
+If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms.
+
+Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way.
+
+8. Termination.
+
+You may not propagate or modify a covered work except as expressly provided under this License.  Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11).
+
+However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.
+
+Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.
+
+Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License.  If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10.
+
+9. Acceptance Not Required for Having Copies.
+
+You are not required to accept this License in order to receive or run a copy of the Program.  Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance.  However, nothing other than this License grants you permission to propagate or modify any covered work.  These actions infringe copyright if you do not accept this License.  Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so.
+
+10. Automatic Licensing of Downstream Recipients.
+
+Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License.  You are not responsible for enforcing compliance by third parties with this License.
+
+An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations.  If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts.
+
+You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License.  For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it.
+
+11. Patents.
+
+A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based.  The work thus licensed is called the contributor's "contributor version".
+
+A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version.  For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License.
+
+Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version.
+
+In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement).  To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party.
+
+If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid.
+
+If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it.
+
+A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License.  You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007.
+
+Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law.
+
+12. No Surrender of Others' Freedom.
+
+If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License.  If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program.
+
+13. Remote Network Interaction; Use with the GNU General Public License.
+
+Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software.  This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph.
+
+Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU General Public License into a single combined work, and to convey the resulting work.  The terms of this License will continue to apply to the part which is the covered work, but the work with which it is combined will remain governed by version 3 of the GNU General Public License.
+
+14. Revised Versions of this License.
+
+The Free Software Foundation may publish revised and/or new versions of the GNU Affero General Public License from time to time.  Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program specifies that a certain numbered version of the GNU Affero General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation.  If the Program does not specify a version number of the GNU Affero General Public License, you may choose any version ever published by the Free Software Foundation.
+
+If the Program specifies that a proxy can decide which future versions of the GNU Affero General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program.
+
+Later license versions may give you additional or different permissions.  However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version.
+
+15. Disclaimer of Warranty.
+
+THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+16. Limitation of Liability.
+
+IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+17. Interpretation of Sections 15 and 16.
+
+If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee.
+
+END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.
+
+To do so, attach the following notices to the program.  It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.
+
+     <one line to give the program's name and a brief idea of what it does.>
+     Copyright (C) <year>  <name of author>
+
+     This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+
+     This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more details.
+
+     You should have received a copy of the GNU Affero General Public License along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If your software can interact with users remotely through a computer network, you should also make sure that it provides a way for users to get its source.  For example, if your program is a web application, its interface could display a "Source" link that leads users to an archive of the code.  There are many ways you could offer source, and different solutions will be better for different programs; see section 13 for the specific requirements.
+
+You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU AGPL, see <http://www.gnu.org/licenses/>.
diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -1,8 +1,11 @@
-override RTS_OPTIONS += -L100
-override TEST_OPTIONS += --color always --size-cutoff 1000000 $(addprefix -p ,$t)
-override GHC_PROF_OPTIONS += -eventlog -fprof-auto -fprof-auto-calls
 override BENCHMARK_OPTIONS += --output benchmarks/html/$(version).html --match glob $b
+override GHCID_OPTIONS += --no-height-limit --reverse-errors 
+override GHC_PROF_OPTIONS += -eventlog -fprof-auto -fprof-cafs
+#-fprof-auto-calls
 override REPL_OPTIONS += -ignore-dot-ghci
+override RTS_OPTIONS += -L100
+override TEST_OPTIONS += --color always --size-cutoff 1000000 $(addprefix -p ,$t)
+override CABAL_TEST_FLAGS += -j
 
 cabal := $(wildcard *.cabal)
 package := $(notdir ./$(cabal:.cabal=))
@@ -17,18 +20,18 @@
 repl:
 	cabal repl $(CABAL_REPL_FLAGS) $(project)
 ghcid:
-	ghcid -c 'cabal repl $(CABAL_REPL_FLAGS) $(project) --repl-options "$(REPL_OPTIONS)"' --reverse-errors
+	ghcid $(GHCID_OPTIONS) --command 'cabal repl -fno-code $(CABAL_REPL_FLAGS) $(project) $(addprefix --repl-options ,$(REPL_OPTIONS))'
 .PHONY: parsers
 parsers:
 	cabal build $(CABAL_BUILD_FLAGS) $(project):parsers
 parsers/repl:
 	cabal repl $(CABAL_REPL_FLAGS) $(project):parsers
 parsers/ghcid:
-	ghcid -c 'cabal repl $(CABAL_REPL_FLAGS) $(project):parsers --repl-options "$(REPL_OPTIONS)"' --reverse-errors
+	ghcid $(GHCID_OPTIONS) --command 'cabal repl -fno-code $(CABAL_REPL_FLAGS) $(project):parsers $(addprefix --repl-options ,$(REPL_OPTIONS))'
 parsers/prof-th:
-	cabal v2-build lib:$(project) --enable-profiling $(GHC_PROF_OPTIONS) --write-ghc-environment-files=always
+	cabal v2-build lib:$(project) --enable-profiling $(addprefix --ghc-options ,$(GHC_PROF_OPTIONS)) --write-ghc-environment-files=always
 	cabal build $(CABAL_BUILD_FLAGS) $(project):parsers \
-	 --enable-profiling $(GHC_PROF_OPTIONS) \
+	 --enable-profiling $(addprefix --ghc-options ,$(GHC_PROF_OPTIONS)) \
 	 --ghc-options "$(addprefix -opti,+RTS $(RTS_OPTIONS))"
 
 .PHONY: tests
@@ -41,17 +44,17 @@
 $(project)-test.eventlog $(project)-test.prof:
 	cabal test $(CABAL_TEST_FLAGS) \
 	 --test-show-details always --test-options "$(TEST_OPTIONS) +RTS $(RTS_OPTIONS)" \
-	 --enable-profiling $(GHC_PROF_OPTIONS) || true
+	 --enable-profiling $(addprefix --ghc-options ,$(GHC_PROF_OPTIONS)) || true
 tests/prof-th:
-	cabal v2-build lib:$(project) --enable-profiling $(GHC_PROF_OPTIONS) --write-ghc-environment-files=always
+	cabal v2-build lib:$(project) --enable-profiling $(addprefix --ghc-options ,$(GHC_PROF_OPTIONS)) --write-ghc-environment-files=always
 	cabal test $(CABAL_TEST_FLAGS) \
 	 --test-show-details always --test-options "$(TEST_OPTIONS) +RTS $(RTS_OPTIONS)" \
-	 --enable-profiling $(GHC_PROF_OPTIONS) \
+	 --enable-profiling $(addprefix --ghc-options ,$(GHC_PROF_OPTIONS)) \
 	 --ghc-options "$(addprefix -opti,+RTS $(RTS_OPTIONS))"
-tests/repl:
-	cabal repl $(CABAL_REPL_FLAGS) --enable-tests $(project)-test
-tests/ghcid:
-	ghcid -c 'cabal repl $(CABAL_REPL_FLAGS) $(project):tests --test-options "$(TEST_OPTIONS)"' --reverse-errors
+t/repl tests/repl:
+	cabal repl $(CABAL_REPL_FLAGS) $(CABAL_TEST_FLAGS) --enable-tests $(project)-test
+t/ghcid tests/ghcid:
+	ghcid $(GHCID_OPTIONS) --command 'cabal repl $(CABAL_REPL_FLAGS) $(CABAL_TEST_FLAGS) $(project):tests' --test ":main $(TEST_OPTIONS)"
 
 %/accept: TEST_OPTIONS += --accept
 %/accept: %
@@ -96,6 +99,7 @@
 	git tag -f -s -m "$(package) v$(version)" $(package)-$(version)
 
 tar:
+	reuse lint
 	cabal sdist
 	cabal haddock --haddock-for-hackage --enable-doc
 upload: LANG=C
diff --git a/ReadMe.md b/ReadMe.md
--- a/ReadMe.md
+++ b/ReadMe.md
@@ -2,17 +2,15 @@
 
 - Primitive grammar combinators are extensible, including the optimization pass for which they are the current top-level combinator.
 
-- Error messages are based upon the farthest input position reached (not yet implemented in `ParsleyHaskell`) and a there is a preliminary support for error messages based upon [labeled failures](https://dl.acm.org/doi/10.1145/2851613.2851750).
+- Error messages are based upon the farthest input position reached (not yet implemented in `ParsleyHaskell`) and there is a preliminary support for error messages based upon [labeled failures](https://dl.acm.org/doi/10.1145/2851613.2851750).
 
 - Minimal input length checks ("horizon" checks) required for a successful parsing are statically computed using a [polyfix](http://okmij.org/ftp/Computation/fixed-point-combinators.html#Poly-variadic) to see beyond calls to subroutines, which is not (yet) possible in `ParsleyHaskell`.
 
-- No dependency upon GHC plugins: `lift-plugin`, `idioms-plugin` or `parsley-garnish` for users. Those provide convenient syntaxic-sugar (by quoting an Haskell expression as itself and its `TemplateHaskell` equivalent) for writing grammar productions, but are experimental, but I do not understand them that much and do not feel confortable to maintain them in case their authors abandon them.
-
-- No dependency upon `dependent-map` by keeping observed sharing in `def` and `ref` combinators, instead of passing by a `DMap`. And also when introducing the join-points optimization, where fresh `TemplateHaskell` names are also directly used instead of passing by a `DMap`.
+- Symantics are used for grammars productions instead of GHC plugins: `lift-plugin`, `idioms-plugin` or `parsley-garnish` for users. Those provide convenient syntaxic-sugar (by quoting an Haskell expression as itself and its `TemplateHaskell` equivalent), but I do not understand them that much and do not feel confortable to maintain them in case their authors abandon them.
 
-- No support (yet?) for general purpose registers in the `Machine` producing the `TemplateHaskell` splices. Hence `symantic-parser` generates parser much slower than `ParsleyHaskell`, comparable to `attoparsec` in the Brainfuck benchmark.
+- Fresh `TemplateHaskell` names are used directly (when observing sharingm introducing join-points, etc.) instead of a detour depending upon `dependent-map`.
 
-- License is `AGPL-3-or-later` not `BSD-3-Clause`.
+- Code is a common published under the copyleft license `AGPL-3.0-or-later`, instead of the more liberal `BSD-3-Clause` of `ParsleyHaskell`.
 
 - Testing grammars have their generated machines and `TemplateHaskell` splices followed by golden tests.
 
@@ -29,7 +27,7 @@
 and their semantics are data-types having instances of those type-classes.
 And the same technique is applied for machine instructions and grammar productions.
 
-For automatic deriving, `DefaultSignatures` are supplied using automatic `trans`formations, see `Symantic.Typed.Trans`.
+For automatic deriving, `DefaultSignatures` are supplied, see `Symantic.Typed.Derive`.
 
 For pattern-matching, data-families indexed by the syntaxic type-class are supplied,
 see `Symantic.Typed.Data`.
diff --git a/ToDo.md b/ToDo.md
--- a/ToDo.md
+++ b/ToDo.md
@@ -1,7 +1,5 @@
 - [ ] Finalize support for error messages based upon: [A Parsing Machine for Parsing Expression Grammars with Labeled Failures](https://dl.acm.org/doi/10.1145/2851613.2851750)
 
-- [ ] Try to introduce registers like in `ParsleyHaskell`.
-
 - [ ] Move the `Symantic.Typed.*` modules into a separate package, maybe `symantic-base`.
 
 - [ ] Support parsing tree inputs (eg. RelaxNG in `symantic-xml` or HTTP routing in `symantic-http-server`).
diff --git a/benchmarks/Brainfuck.hs b/benchmarks/Brainfuck.hs
--- a/benchmarks/Brainfuck.hs
+++ b/benchmarks/Brainfuck.hs
@@ -64,7 +64,6 @@
 
 benchmark :: Benchmark
 benchmark = bgroup "Brainfuck" $ List.concat
-  [ benchBrainfuck "helloworld"
-  , benchBrainfuck "compiler"
+  [ benchBrainfuck "compiler"
   , benchBrainfuck "hanoi"
   ]
diff --git a/flake.lock b/flake.lock
--- a/flake.lock
+++ b/flake.lock
@@ -32,8 +32,8 @@
     },
     "nixpkgs": {
       "locked": {
-        "narHash": "sha256-3C35/g5bJ3KH67fOpxTkqDpfJ1CHYrO2bbl+fPgqfMQ=",
-        "path": "/nix/store/6g7dgkinzm4rvwmpfp9avklsb4hiqals-nixpkgs-patched",
+        "narHash": "sha256-r3EoB5BEXlDDDm6zZ571l3GQQTV+ENxis3QQF33WzrQ=",
+        "path": "/nix/store/95j1q84ajdn4ry10rywngn2jhasjjzlz-nixpkgs-patched",
         "type": "path"
       },
       "original": {
@@ -56,11 +56,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1626033315,
-        "narHash": "sha256-vHRFhc9Bg2cxrAR9R1TSXn2f6ZwzOIMRD+0n3cXzl54=",
+        "lastModified": 1627727111,
+        "narHash": "sha256-y1A7iCysHlnV87HvdY06WmvqxE8kj6oGaXqD+IrCNB8=",
         "ref": "master",
-        "rev": "29078a0e7fbe8df3204bcf86dd902a301072574f",
-        "revCount": 14,
+        "rev": "eee56bd2c70439de82cbf8204080a480868f2a85",
+        "revCount": 17,
         "type": "git",
         "url": "git://git.sourcephile.fr/haskell/symantic-base"
       },
diff --git a/parsers/Parsers/Brainfuck/SymanticParser/Grammar.hs b/parsers/Parsers/Brainfuck/SymanticParser/Grammar.hs
--- a/parsers/Parsers/Brainfuck/SymanticParser/Grammar.hs
+++ b/parsers/Parsers/Brainfuck/SymanticParser/Grammar.hs
@@ -29,8 +29,8 @@
   lexeme p = p SP.<* whitespace
   bf :: repr [Instruction]
   bf = SP.many (lexeme (SP.match (SP.look (SP.item @tok))
-                               (SP.prod . coerceEnum Prelude.<$> "<>+-,.[")
-                               op SP.empty))
+                                 (SP.prod . coerceEnum Prelude.<$> "<>+-,.[")
+                                 op SP.empty))
   op :: SP.Production tok -> repr Instruction
   op prod = case coerceEnum (SP.runValue prod) of
     '<' -> SP.item @tok SP.$> SP.prod Backward
diff --git a/parsers/Parsers/Brainfuck/inputs/helloworld.bf b/parsers/Parsers/Brainfuck/inputs/helloworld.bf
deleted file mode 100644
--- a/parsers/Parsers/Brainfuck/inputs/helloworld.bf
+++ /dev/null
@@ -1,22 +0,0 @@
-[Taken from https://esolangs.org/wiki/Brainfuck]
-+++++ +++++             initialize counter (cell #0) to 10
-[                       use loop to set the next four cells to 70/100/30/10
-    > +++++ ++              add  7 to cell #1
-    > +++++ +++++           add 10 to cell #2
-    > +++                   add  3 to cell #3
-    > +                     add  1 to cell #4
-    <<<< -                  decrement counter (cell #0)
-]
-> ++ .                  print 'H'
-> + .                   print 'e'
-+++++ ++ .              print 'l'
-.                       print 'l'
-+++ .                   print 'o'
-> ++ .                  print ' '
-<< +++++ +++++ +++++ .  print 'W'
-> .                     print 'o'
-+++ .                   print 'r'
------ - .               print 'l'
------ --- .             print 'd'
-> + .                   print '!'
-> .                     print '\n'
diff --git a/parsers/Parsers/Brainfuck/inputs/helloworld_golfed.bf b/parsers/Parsers/Brainfuck/inputs/helloworld_golfed.bf
deleted file mode 100644
--- a/parsers/Parsers/Brainfuck/inputs/helloworld_golfed.bf
+++ /dev/null
@@ -1,1 +0,0 @@
-++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
diff --git a/parsers/Parsers/Nandlang.hs b/parsers/Parsers/Nandlang.hs
--- a/parsers/Parsers/Nandlang.hs
+++ b/parsers/Parsers/Nandlang.hs
@@ -18,7 +18,7 @@
 import qualified Data.Text as Text
 
 import qualified Symantic.Parser as P
-import qualified Symantic.Typed.Lang as Prod
+import qualified Symantic.Lang as Prod
 
 type Parser a = P.Parser Text.Text a
 
diff --git a/parsers/Parsers/Playground.hs b/parsers/Parsers/Playground.hs
--- a/parsers/Parsers/Playground.hs
+++ b/parsers/Parsers/Playground.hs
@@ -3,7 +3,7 @@
 module Parsers.Playground where
 
 import Symantic.Parser
-import qualified Symantic.Typed.Lang as Prod
+import qualified Symantic.Lang as Prod
 
 boom :: CombApplicable repr => repr ()
 boom =
diff --git a/src/Language/Haskell/TH/HideName.hs b/src/Language/Haskell/TH/HideName.hs
--- a/src/Language/Haskell/TH/HideName.hs
+++ b/src/Language/Haskell/TH/HideName.hs
@@ -1,12 +1,29 @@
+{-# LANGUAGE AllowAmbiguousTypes #-} -- For hideableShow
 -- | This module enables to 'hideName'
 -- to get reproductible dumps of TemplateHaskell slices.
 module Language.Haskell.TH.HideName where
 
+import Data.Bool (Bool(..))
+import Data.Function (id)
 import Data.Functor ((<$>))
 import Language.Haskell.TH
 import Language.Haskell.TH.Syntax
 import Prelude (undefined)
 
+-- ** Type 'HideableName'
+-- | Useful on golden unit tests because 'Name's
+-- change often when changing unrelated source code
+-- or even when changing basic GHC or executable flags.
+class HideableName (showNames::Bool) where
+  hideableName :: HideName a => a -> a
+-- | Like 'id'.
+instance HideableName 'True where
+  hideableName = id
+-- | Like 'hideName'.
+instance HideableName 'False where
+  hideableName = hideName
+
+-- * Class 'HideName'
 class HideName a where
   -- | Map all 'Name's to a constant in order to overcome
   -- cases where resetting 'TH.counter' is not enough
@@ -133,3 +150,5 @@
   hideName (VarP v) = VarP (hideName v)
   hideName (ViewP e p) = ViewP (hideName e) (hideName p)
   hideName WildP = WildP
+instance HideName a => HideName [a] where
+  hideName = (hideName <$>)
diff --git a/src/Symantic/Parser/Grammar.hs b/src/Symantic/Parser/Grammar.hs
--- a/src/Symantic/Parser/Grammar.hs
+++ b/src/Symantic/Parser/Grammar.hs
@@ -8,7 +8,7 @@
   , module Symantic.Parser.Grammar.Production
   , module Symantic.Parser.Grammar.Write
   , module Symantic.Parser.Grammar.View
-  , Letable(..)
+  , Referenceable(..)
   , Letsable(..)
   ) where
 import Symantic.Parser.Grammar.Combinators
@@ -25,19 +25,25 @@
 import Data.String (String)
 import Data.Typeable (Typeable)
 import Text.Show (Show(..))
+import Language.Haskell.TH.HideName
 import qualified Language.Haskell.TH.Syntax as TH
 
--- * Class 'Grammarable'
+-- * Type 'Grammar'
+type Grammar repr = ObserveSharing TH.Name (OptimizeGrammar repr)
+
+-- ** Class 'Grammarable'
 type Grammarable tok repr =
   ( CombAlternable repr
   , CombApplicable repr
   , CombFoldable repr
-  , Letable TH.Name repr
+  , Referenceable TH.Name repr
   , Letsable TH.Name repr
   , CombLookable repr
   , CombMatchable repr
   , CombSatisfiable tok repr
   , CombSelectable repr
+  --, CombRegisterable repr
+  , CombRegisterableUnscoped repr
   , Eq tok
   , Ord tok
   , TH.Lift tok
@@ -48,18 +54,13 @@
 
 -- | A usual pipeline to interpret 'Comb'inators:
 -- 'observeSharing' then 'optimizeGrammar' then a polymorphic @(repr)@.
-grammar ::
-  Grammarable tok repr =>
-  ObserveSharing TH.Name
-    (OptimizeGrammar repr) a ->
-  repr a
+grammar :: Grammarable tok repr => Grammar repr a -> repr a
 grammar = optimizeGrammar . observeSharing
 
 -- | An usual pipeline to show 'Comb'inators:
 -- 'observeSharing' then 'optimizeGrammar' then 'viewGrammar' then 'show'.
-showGrammar :: forall showName a tok repr.
-  repr ~ ObserveSharing TH.Name (OptimizeGrammar (ViewGrammar showName)) =>
-  ShowLetName showName TH.Name =>
-  Grammarable tok repr =>
-  repr a -> String
+showGrammar :: forall showName a tok.
+  HideableName showName =>
+  Grammarable tok (Grammar (ViewGrammar showName)) =>
+  Grammar (ViewGrammar showName) a -> String
 showGrammar = show . viewGrammar . grammar @tok
diff --git a/src/Symantic/Parser/Grammar/Combinators.hs b/src/Symantic/Parser/Grammar/Combinators.hs
--- a/src/Symantic/Parser/Grammar/Combinators.hs
+++ b/src/Symantic/Parser/Grammar/Combinators.hs
@@ -8,6 +8,7 @@
 {-# LANGUAGE DeriveGeneric #-} -- For NFData instances
 {-# LANGUAGE DeriveAnyClass #-} -- For NFData instances
 {-# LANGUAGE DeriveLift #-} -- For TH.Lift (Exception tok)
+{-# LANGUAGE DerivingStrategies #-} -- For UnscopedRegister
 {-# LANGUAGE PatternSynonyms #-} -- For Failure
 {-# LANGUAGE StandaloneDeriving #-} -- For Show (Exception (InputToken inp))
 {-# LANGUAGE InstanceSigs #-}
@@ -28,7 +29,7 @@
 import Data.Either (Either(..))
 import Data.Eq (Eq(..))
 import Data.Ord (Ord(..), Ordering(..))
-import Data.Function ((.), flip, const)
+import Data.Function ((.), flip, const, fix)
 import Data.Int (Int)
 import Data.Kind (Type, Constraint)
 import Data.Maybe (Maybe(..))
@@ -42,8 +43,8 @@
 import qualified Language.Haskell.TH as TH
 import qualified Language.Haskell.TH.Syntax as TH
 
-import Symantic.Typed.Derive
-import qualified Symantic.Typed.Lang as Prod
+import Symantic.Derive
+import qualified Symantic.Lang as Prod
 import Symantic.Parser.Grammar.Production
 
 -- * Type 'ReprComb'
@@ -112,8 +113,7 @@
   , TH.Lift (Failure comb)
   , NFData (Failure comb)
   , Typeable comb
-  ) =>
-  SomeFailure (Failure comb {-repr a-})
+  ) => SomeFailure (Failure comb {-repr a-})
 instance Eq SomeFailure where
   SomeFailure (x::Failure x) == SomeFailure (y::Failure y) =
     case typeRep @x `eqTypeRep` typeRep @y of
@@ -286,18 +286,17 @@
 
 -- * Class 'CombFoldable'
 class CombFoldable repr where
-  chainPre :: repr (a -> a) -> repr a -> repr a
+  chainPre  :: repr (a -> a) -> repr a -> repr a
   chainPost :: repr a -> repr (a -> a) -> repr a
-  {-
+  chainPre  = liftDerived2 chainPre
+  chainPost = liftDerived2 chainPost
   default chainPre ::
     FromDerived2 CombFoldable repr =>
     repr (a -> a) -> repr a -> repr a
   default chainPost ::
     FromDerived2 CombFoldable repr =>
     repr a -> repr (a -> a) -> repr a
-  chainPre = liftDerived2 chainPre
-  chainPost = liftDerived2 chainPost
-  -}
+  {-
   default chainPre ::
     CombApplicable repr =>
     CombAlternable repr =>
@@ -308,6 +307,7 @@
     repr a -> repr (a -> a) -> repr a
   chainPre op p = go <*> p where go = (Prod..) <$> op <*> go <|> pure Prod.id
   chainPost p op = p <**> go where go = (Prod..) <$> op <*> go <|> pure Prod.id
+  -}
   {-
   chainPre op p = flip (foldr ($)) <$> many op <*> p
   chainPost p op = foldl' (flip ($)) <$> p <*> many op
@@ -448,17 +448,36 @@
 -- * Class 'CombMatchable'
 class CombMatchable repr where
   conditional ::
-    Eq a => repr a -> [Production (a -> Bool)] -> [repr b] -> repr b -> repr b
+    repr a -> [(Production (a -> Bool), repr b)] -> repr b -> repr b
+  conditional a bs = liftDerived1
+    (conditional (derive a) ((\(p,b) -> (p, derive b)) Functor.<$> bs))
   default conditional ::
     FromDerived1 CombMatchable repr => Derivable repr =>
-    Eq a => repr a -> [Production (a -> Bool)] -> [repr b] -> repr b -> repr b
-  conditional a ps bs = liftDerived1 (conditional (derive a) ps (derive Functor.<$> bs))
-
-  match :: Eq a => repr a -> [Production a] -> (Production a -> repr b) -> repr b -> repr b
-  match a as a2b = conditional a ((Prod.equal Prod..@) Functor.<$> as) (a2b Functor.<$> as)
-  -- match a as a2b = conditional a (((Prod.eq Prod..@ Prod.qual) Prod..@) Functor.<$> as) (a2b Functor.<$> as)
+    repr a -> [(Production (a -> Bool), repr b)] -> repr b -> repr b
 data instance Failure CombMatchable
 
+match ::
+  CombMatchable repr =>
+  Eq a => TH.Lift a =>
+  repr a -> [Production a] -> (Production a -> repr b) -> repr b -> repr b
+match a as p = conditional a
+  ((\v ->
+    ( Prod.lam (\x -> (Prod.==) Prod..@ v Prod..@ x)
+    , p v
+    )
+  ) Functor.<$> as)
+
+predicate ::
+  CombMatchable repr =>
+  Production (a -> Bool) -> repr a -> repr b -> repr b -> repr b
+predicate p a b d = conditional a [(p, b)] d
+
+infixl 4 <?:>
+(<?:>) ::
+  CombMatchable repr =>
+  repr Bool -> (repr a, repr a) -> repr a
+cond <?:> (p, q) = predicate Prod.id cond p q
+
 -- * Class 'CombSatisfiable'
 class CombSatisfiable tok repr where
   -- | Like 'satisfyOrFail' but with no custom failure.
@@ -589,6 +608,20 @@
   branch = liftDerived3 branch
 data instance Failure CombSelectable
 
+when ::
+  CombMatchable repr =>
+  CombSelectable repr =>
+  Prod.Constantable () repr =>
+  repr Bool -> repr () -> repr ()
+when p q = p <?:> (q, Prod.unit)
+
+while ::
+  CombMatchable repr =>
+  CombSelectable repr =>
+  Prod.Constantable () repr =>
+  repr Bool -> repr ()
+while x = fix (when x)
+
 -- * Class 'CombLookable'
 class CombLookable repr where
   look :: repr a -> repr a
@@ -664,3 +697,97 @@
 instance CombLookable repr => CombLookable (Sym.Any repr)
 instance CombFoldable repr => CombFoldable (Sym.Any repr)
 -}
+
+-- * Type 'Register'
+newtype Register r a = Register { unRegister :: UnscopedRegister a }
+  deriving (Eq, Show)
+
+-- ** Type 'UnscopedRegister'
+newtype UnscopedRegister r = UnscopedRegister { unUnscopedRegister :: TH.Name }
+  deriving (Eq)
+  deriving newtype Show
+
+
+{-
+put_ :: ParserOps rep => Register r a -> rep a -> Parser ()
+put_ r = put r . pure
+
+gets_ :: ParserOps rep => Register r a -> rep (a -> b) -> Parser b
+gets_ r = gets r . pure
+
+modify_ :: ParserOps rep => Register r a -> rep (a -> a) -> Parser ()
+modify_ r = modify r . pure
+-}
+
+gets ::
+  CombApplicable repr =>
+  CombRegisterable repr =>
+  Register r a -> repr (a -> b) -> repr b
+gets r p = p <*> get r
+
+modify ::
+  CombApplicable repr =>
+  CombRegisterable repr =>
+  Register r a -> repr (a -> a) -> repr ()
+modify r p = put r (gets r p)
+
+move ::
+  CombRegisterable repr =>
+  Register r1 a -> Register r2 a -> repr ()
+move dst src = put dst (get src)
+
+bind ::
+  CombRegisterable repr =>
+  repr a -> (repr a -> repr b) -> repr b
+bind p f = new p (f . get)
+
+local ::
+  CombApplicable repr =>
+  CombRegisterable repr =>
+  Register r a -> repr a -> repr b -> repr b
+local r p q = bind (get r) (\x -> put r p *> q <* put r x)
+
+swap ::
+  CombApplicable repr =>
+  CombRegisterable repr =>
+  Register r1 a -> Register r2 a -> repr ()
+swap r1 r2 = bind (get r1) (\x -> move r1 r2 *> put r2 x)
+
+rollback ::
+  CombAlternable repr =>
+  CombApplicable repr =>
+  CombRegisterable repr =>
+  Register r a -> repr b -> repr b
+rollback r p = bind (get r) (\x -> p <|> put r x *> empty)
+
+for ::
+  CombApplicable repr =>
+  CombMatchable repr =>
+  CombSelectable repr =>
+  CombRegisterable repr =>
+  Prod.Constantable () repr =>
+  repr a -> repr (a -> Bool) -> repr (a -> a) -> repr () -> repr ()
+for init cond step body =
+  new init (\i ->
+    let cond' = gets i cond in
+    when cond' (while (body *> modify i step *> cond'))
+  )
+
+
+-- ** Class 'CombRegisterable'
+class CombRegisterable (repr::ReprComb) where
+  new :: repr a -> (forall r. Register r a -> repr b) -> repr b
+  get :: Register r a -> repr a
+  put :: Register r a -> repr a -> repr ()
+  default new ::
+    FromDerived CombRegisterable repr => Derivable repr =>
+    repr a -> (forall r. Register r a -> repr b) -> repr b
+  default get ::
+    FromDerived CombRegisterable repr =>
+    Register r a -> repr a
+  default put ::
+    FromDerived1 CombRegisterable repr =>
+    Register r a -> repr a -> repr ()
+  new ini f = liftDerived (new (derive ini) (derive . f))
+  get = liftDerived . get
+  put = liftDerived1 . put
diff --git a/src/Symantic/Parser/Grammar/ObserveSharing.hs b/src/Symantic/Parser/Grammar/ObserveSharing.hs
--- a/src/Symantic/Parser/Grammar/ObserveSharing.hs
+++ b/src/Symantic/Parser/Grammar/ObserveSharing.hs
@@ -1,19 +1,22 @@
+{-# LANGUAGE DefaultSignatures #-}
+{-# LANGUAGE TupleSections #-}
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 module Symantic.Parser.Grammar.ObserveSharing
-  ( module Symantic.Typed.ObserveSharing
+  ( module Symantic.ObserveSharing
   , module Symantic.Parser.Grammar.ObserveSharing
   ) where
 
 import Control.Monad (mapM)
 import Data.Function (($), (.))
 import Data.Hashable (Hashable, hashWithSalt)
+import System.IO.Unsafe (unsafePerformIO) -- For 'new'
 import Text.Show (Show(..))
-import qualified Control.Applicative as Functor
+import qualified Control.Applicative as F
 
 import Symantic.Parser.Grammar.Combinators
-import Symantic.Typed.Derive
-import Symantic.Typed.ObserveSharing hiding (observeSharing)
-import qualified Symantic.Typed.ObserveSharing as ObserveSharing
+import Symantic.Derive
+import Symantic.ObserveSharing hiding (observeSharing)
+import qualified Symantic.ObserveSharing as ObserveSharing
 import qualified Language.Haskell.TH.Syntax as TH
 
 -- | Like 'Observable.observeSharing'
@@ -30,51 +33,110 @@
   makeLetName _ = TH.qNewName "name"
 
 -- Combinators semantics for the 'ObserveSharing' interpreter.
-instance (Letable TH.Name repr, CombAlternable repr) =>
-  CombAlternable (ObserveSharing TH.Name repr)
-instance (Letable TH.Name repr, CombApplicable repr) =>
-  CombApplicable (ObserveSharing TH.Name repr)
 instance
-  ( Letable TH.Name repr
-  , CombFoldable repr
-  {- TODO: the following constraints are for the current CombFoldable,
-   - they will have to be removed when CombFoldable will have 'liftDerived2' as defaults
-   -}
-  , CombApplicable repr
+  ( Referenceable TH.Name repr
   , CombAlternable repr
+  ) => CombAlternable (ObserveSharing TH.Name repr)
+instance
+  ( Referenceable TH.Name repr
+  , CombApplicable repr
+  ) => CombApplicable (ObserveSharing TH.Name repr)
+instance
+  ( Referenceable TH.Name repr
+  , CombFoldable repr
   ) => CombFoldable (ObserveSharing TH.Name repr)
-instance (Letable TH.Name repr, CombLookable repr) =>
-  CombLookable (ObserveSharing TH.Name repr)
-instance (Letable TH.Name repr, CombMatchable repr) =>
-  CombMatchable (ObserveSharing TH.Name repr) where
+instance
+  ( Referenceable TH.Name repr
+  , CombLookable repr
+  ) => CombLookable (ObserveSharing TH.Name repr)
+instance
+  ( Referenceable TH.Name repr
+  , CombMatchable repr
+  ) => CombMatchable (ObserveSharing TH.Name repr) where
   -- Here the default definition does not fit
-  -- since there is no lift* for the type of 'conditional'
+  -- since there is no liftDerived* for the type of 'conditional'
   -- and its default definition does not handles 'bs'
-  -- as needed by the 'ObserveSharing' transformation.
-  conditional a cs bs b = observeSharingNode $ ObserveSharing $
-    conditional
-      Functor.<$> unObserveSharing a
-      Functor.<*> Functor.pure cs
-      Functor.<*> mapM unObserveSharing bs
-      Functor.<*> unObserveSharing b
-instance (Letable TH.Name repr, CombSelectable repr) =>
-  CombSelectable (ObserveSharing TH.Name repr)
-instance (Letable TH.Name repr, CombSatisfiable tok repr) =>
-  CombSatisfiable tok (ObserveSharing TH.Name repr)
+  -- as needed by the 'ObserveSharing' interpreter.
+  conditional a bs d = observeSharingNode $ ObserveSharing $ conditional
+    F.<$> unObserveSharing a
+    F.<*> mapM (\(p, b) -> (p,) F.<$> unObserveSharing b) bs
+    F.<*> unObserveSharing d
+instance
+  ( Referenceable TH.Name repr
+  , CombSelectable repr
+  ) => CombSelectable (ObserveSharing TH.Name repr)
+instance
+  ( Referenceable TH.Name repr
+  , CombSatisfiable tok repr
+  ) => CombSatisfiable tok (ObserveSharing TH.Name repr)
+instance
+  ( Referenceable TH.Name repr
+  , CombRegisterableUnscoped repr
+  ) => CombRegisterable (ObserveSharing TH.Name repr) where
+  new ini f =
+    -- 'unsafePerformIO' is used here because propagating 'IO'
+    -- would prevent 'observeSharing' to recognize recursive let,
+    -- causing an infinite loop on them.
+    let !regName = unsafePerformIO $ TH.newName "reg" in
+    let reg = UnscopedRegister regName in
+    newUnscoped reg ini (f (Register reg))
+  get = getUnscoped . unRegister
+  put reg x = putUnscoped (unRegister reg) x
+instance
+  ( Referenceable TH.Name repr
+  , CombRegisterableUnscoped repr
+  ) => CombRegisterableUnscoped (ObserveSharing TH.Name repr)
 
+-- * Class 'CombRegisterableUnscoped'
+-- | These combinators are used to remove the @Rank2Types@ from 'CombRegisterable'
+-- in order to be able to 'observeSharing'.
+class CombRegisterableUnscoped (repr::ReprComb) where
+  newUnscoped :: UnscopedRegister a -> repr a -> repr b -> repr b
+  getUnscoped :: UnscopedRegister a -> repr a
+  putUnscoped :: UnscopedRegister a -> repr a -> repr ()
+  default newUnscoped ::
+    FromDerived2 CombRegisterableUnscoped repr =>
+    UnscopedRegister a -> repr a -> repr b -> repr b
+  default getUnscoped ::
+    FromDerived CombRegisterableUnscoped repr =>
+    UnscopedRegister a -> repr a
+  default putUnscoped ::
+    FromDerived1 CombRegisterableUnscoped repr =>
+    UnscopedRegister a -> repr a -> repr ()
+  newUnscoped = liftDerived2 . newUnscoped
+  getUnscoped = liftDerived . getUnscoped
+  putUnscoped = liftDerived1 . putUnscoped
+
 -- Combinators semantics for the 'FinalizeSharing' interpreter.
-instance CombApplicable repr => CombApplicable (FinalizeSharing TH.Name repr)
-instance CombAlternable repr => CombAlternable (FinalizeSharing TH.Name repr)
-instance CombFoldable repr => CombFoldable (FinalizeSharing TH.Name repr) where
-  chainPre = liftDerived2 chainPre
-  chainPost = liftDerived2 chainPost
-instance CombLookable repr => CombLookable (FinalizeSharing TH.Name repr)
-instance CombMatchable repr => CombMatchable (FinalizeSharing TH.Name repr) where
-  conditional a cs bs b = FinalizeSharing $
-    conditional
-      Functor.<$> unFinalizeSharing a
-      Functor.<*> Functor.pure cs
-      Functor.<*> mapM unFinalizeSharing bs
-      Functor.<*> unFinalizeSharing b
-instance CombSatisfiable tok repr => CombSatisfiable tok (FinalizeSharing TH.Name repr)
-instance CombSelectable repr => CombSelectable (FinalizeSharing TH.Name repr)
+instance
+  ( CombApplicable repr
+  ) => CombApplicable (FinalizeSharing TH.Name repr)
+instance
+  ( CombAlternable repr
+  ) => CombAlternable (FinalizeSharing TH.Name repr)
+instance
+  ( CombFoldable repr
+  ) => CombFoldable (FinalizeSharing TH.Name repr)
+instance
+  ( CombLookable repr
+  ) => CombLookable (FinalizeSharing TH.Name repr)
+instance
+  ( CombMatchable repr
+  ) => CombMatchable (FinalizeSharing TH.Name repr) where
+  conditional a bs d = FinalizeSharing $ conditional
+    F.<$> unFinalizeSharing a
+    F.<*> mapM (\(p, b) -> (p,) F.<$> unFinalizeSharing b) bs
+    F.<*> unFinalizeSharing d
+instance
+  ( CombSatisfiable tok repr
+  ) => CombSatisfiable tok (FinalizeSharing TH.Name repr)
+instance
+  ( CombSelectable repr
+  ) => CombSelectable (FinalizeSharing TH.Name repr)
+instance
+  ( CombRegisterableUnscoped repr
+  ) => CombRegisterableUnscoped (FinalizeSharing TH.Name repr)
+
+-- | Call trace stack updated by 'call' and 'refJoin'.
+-- Used to avoid infinite loops when tying the knot with 'polyfix'.
+type CallTrace = [TH.Name]
diff --git a/src/Symantic/Parser/Grammar/Optimize.hs b/src/Symantic/Parser/Grammar/Optimize.hs
--- a/src/Symantic/Parser/Grammar/Optimize.hs
+++ b/src/Symantic/Parser/Grammar/Optimize.hs
@@ -1,12 +1,12 @@
 {-# LANGUAGE PatternSynonyms #-} -- For Comb
 {-# LANGUAGE TemplateHaskell #-} -- For branch
-{-# LANGUAGE ViewPatterns #-} -- For unSomeComb
+{-# LANGUAGE ViewPatterns #-} -- For unSimplComb
 {-# OPTIONS_GHC -fno-warn-orphans #-} -- For MakeLetName TH.Name
 -- | Bottom-up optimization of 'Comb'inators,
 -- reexamining downward as needed after each optimization.
 module Symantic.Parser.Grammar.Optimize where
 
-import Data.Bool (Bool(..))
+import Data.Bool (Bool(..), (&&), not)
 import Data.Either (Either(..), either)
 import Data.Eq (Eq(..))
 import Data.Function (($), (.))
@@ -15,17 +15,22 @@
 import Data.Set (Set)
 import Data.Functor.Identity (Identity(..))
 import Data.Functor.Product (Product(..))
+import Unsafe.Coerce (unsafeCoerce)
 import Type.Reflection (Typeable, typeRep, eqTypeRep, (:~~:)(..))
+import Data.Semigroup (Semigroup(..))
 import qualified Data.Foldable as Foldable
-import qualified Data.Functor as Functor
-import qualified Data.List as List
+import qualified Data.Functor as F
+import qualified Data.HashMap.Strict as HM
+import qualified Data.HashSet as HS
+import Data.Hashable (Hashable)
+import qualified Language.Haskell.TH as TH
 
 import Symantic.Parser.Grammar.Combinators
 import Symantic.Parser.Grammar.Production
-import Symantic.Typed.Derive
-import Symantic.Typed.ObserveSharing
-import qualified Symantic.Typed.Data as Prod
-import qualified Symantic.Typed.Lang as Prod
+import Symantic.Parser.Grammar.ObserveSharing hiding (def)
+import Symantic.Derive
+import qualified Symantic.Data as Prod
+import qualified Symantic.Lang as Prod
 
 {-
 import Data.Function (($), flip)
@@ -34,15 +39,87 @@
 (&) = flip ($)
 infix 0 &
 -}
+type OptimizeGrammar = KnotComb TH.Name
 
--- * Type 'OptimizeGrammar'
-type OptimizeGrammar = SomeComb
+-- | TODO: remove useless wrapping?
+newtype TiedComb repr a = TiedComb
+  {  combSimpl :: SimplComb repr a
+  --,  combRefs :: HS.HashSet letName
+  }
 
+-- * Type 'KnotComb'
+data KnotComb letName repr a = KnotComb
+  { knotCombOpens :: OpenRecs letName (SomeLet (TiedComb repr))
+    -- ^ 'TiedComb' for all 'letName' in 'lets'.
+  , knotCombOpen ::
+      LetRecs letName (SomeLet (TiedComb repr)) ->
+      TiedComb repr a
+    -- ^ 'TiedComb' of the current combinator,
+    -- with access to the final 'knotCombOpens'.
+  }
+
 optimizeGrammar ::
-  Derivable (SomeComb repr) =>
-  SomeComb repr a -> repr a
-optimizeGrammar = derive
+  Derivable (SimplComb repr) =>
+  KnotComb TH.Name repr a -> repr a
+optimizeGrammar = derive . derive
 
+type instance Derived (KnotComb letName repr) = SimplComb repr
+instance Derivable (KnotComb letName repr) where
+  derive opt = combSimpl $
+    knotCombOpen opt (mutualFix (knotCombOpens opt))
+instance LiftDerived (KnotComb letName repr) where
+  liftDerived x = KnotComb
+    { knotCombOpens = HM.empty
+    , knotCombOpen = \_final -> TiedComb
+        { combSimpl = x
+        }
+    }
+instance LiftDerived1 (KnotComb letName repr) where
+  liftDerived1 f a = a
+    { knotCombOpen = \final -> TiedComb
+      { combSimpl = f (combSimpl (knotCombOpen a final))
+      }
+    }
+instance (Eq letName, Hashable letName) => LiftDerived2 (KnotComb letName repr) where
+  liftDerived2 f a b = KnotComb
+    { knotCombOpens = knotCombOpens a <> knotCombOpens b
+    , knotCombOpen = \final -> TiedComb
+      { combSimpl = f
+         (combSimpl (knotCombOpen a final))
+         (combSimpl (knotCombOpen b final))
+      }
+    }
+instance (Eq letName, Hashable letName) => LiftDerived3 (KnotComb letName repr) where
+  liftDerived3 f a b c = KnotComb
+    { knotCombOpens = HM.unions
+      [ knotCombOpens a
+      , knotCombOpens b
+      , knotCombOpens c
+      ]
+    , knotCombOpen = \final -> TiedComb
+      { combSimpl = f
+         (combSimpl (knotCombOpen a final))
+         (combSimpl (knotCombOpen b final))
+         (combSimpl (knotCombOpen c final))
+      }
+    }
+instance (Eq letName, Hashable letName) => LiftDerived4 (KnotComb letName repr) where
+  liftDerived4 f a b c d = KnotComb
+    { knotCombOpens = HM.unions
+      [ knotCombOpens a
+      , knotCombOpens b
+      , knotCombOpens c
+      , knotCombOpens d
+      ]
+    , knotCombOpen = \final -> TiedComb
+      { combSimpl = f
+         (combSimpl (knotCombOpen a final))
+         (combSimpl (knotCombOpen b final))
+         (combSimpl (knotCombOpen c final))
+         (combSimpl (knotCombOpen d final))
+      }
+    }
+
 -- * Data family 'Comb'
 -- | 'Comb'inators of the 'Grammar'.
 -- This is an extensible data-type.
@@ -51,49 +128,65 @@
   :: ReprComb -> ReprComb
 type instance Derived (Comb comb repr) = repr
 
--- | Convenient utility to pattern-match a 'SomeComb'.
-pattern Comb :: Typeable comb => Comb comb repr a -> SomeComb repr a
-pattern Comb x <- (unSomeComb -> Just x)
+-- | 'unsafeCoerce' restrained to 'SimplComb'.
+-- Useful to avoid dependant-map when inlining.
+unsafeSimplComb :: SimplComb repr a -> SimplComb repr b
+unsafeSimplComb = unsafeCoerce
 
--- ** Type 'SomeComb'
--- | Some 'Comb'inator existentialized over the actual combinator symantic class.
+-- | Convenient utility to pattern-match a 'SimplComb'.
+pattern Comb :: Typeable comb => Comb comb repr a -> SimplComb repr a
+pattern Comb x <- (unSimplComb -> Just x)
+
+-- ** Type 'SimplComb'
+-- | Interpreter simplifying combinators.
 -- Useful to handle a list of 'Comb'inators
 -- without requiring impredicative quantification.
 -- Must be used by pattern-matching
--- on the 'SomeComb' data-constructor,
+-- on the 'SimplComb' data-constructor,
 -- to bring the constraints in scope.
 --
 -- The optimizations are directly applied within it,
 -- to avoid introducing an extra newtype,
 -- this also give a more understandable code.
-data SomeComb repr a =
+data SimplComb repr a =
   forall comb.
   (Derivable (Comb comb repr), Typeable comb) =>
-  SomeComb (Comb comb repr a)
+  SimplComb
+    { combData :: Comb comb repr a
+      -- ^ Some 'Comb'inator existentialized
+      -- over the actual combinator symantic class.
+    , combInline :: Bool
+      -- ^ Whether this combinator must be inlined
+      -- in place of a 'ref'erence pointing to it
+      -- (instead of generating a 'call').
+    , combRefs :: HS.HashSet TH.Name
+      -- ^ 'ref''s names reacheable from combinator
+      -- (including those behind 'ref's).
+    }
 
-type instance Derived (SomeComb repr) = repr
-instance Derivable (SomeComb repr) where
-  derive (SomeComb x) = derive x
+type instance Derived (SimplComb repr) = repr
+instance Derivable (SimplComb repr) where
+  derive SimplComb{..} = derive combData
 
--- | @(unSomeComb c :: 'Maybe' ('Comb' comb repr a))@
--- extract the data-constructor from the given 'SomeComb'
+-- | @(unSimplComb c :: 'Maybe' ('Comb' comb repr a))@
+-- extract the data-constructor from the given 'SimplComb'
 -- iif. it belongs to the @('Comb' comb repr a)@ data-instance.
-unSomeComb ::
+unSimplComb ::
   forall comb repr a.
   Typeable comb =>
-  SomeComb repr a -> Maybe (Comb comb repr a)
-unSomeComb (SomeComb (c::Comb c repr a)) =
+  SimplComb repr a -> Maybe (Comb comb repr a)
+unSimplComb SimplComb{ combData = c :: Comb c repr a } =
   case typeRep @comb `eqTypeRep` typeRep @c of
     Just HRefl -> Just c
     Nothing -> Nothing
 
 -- CombAlternable
 data instance Comb CombAlternable repr a where
-  Alt :: Exception -> SomeComb repr a -> SomeComb repr a -> Comb CombAlternable repr a
+  Alt :: Exception -> SimplComb repr a -> SimplComb repr a -> Comb CombAlternable repr a
   Empty :: Comb CombAlternable repr a
   Failure :: SomeFailure -> Comb CombAlternable repr a
   Throw :: ExceptionLabel -> Comb CombAlternable repr a
-  Try :: SomeComb repr a -> Comb CombAlternable repr a
+  Try :: SimplComb repr a -> Comb CombAlternable repr a
 instance CombAlternable repr => Derivable (Comb CombAlternable repr) where
   derive = \case
     Alt exn x y -> alt exn (derive x) (derive y)
@@ -107,9 +200,17 @@
   , CombLookable repr
   , CombMatchable repr
   , CombSelectable repr
-  ) => CombAlternable (SomeComb repr) where
-  empty = SomeComb Empty
-  failure sf = SomeComb (Failure sf)
+  ) => CombAlternable (SimplComb repr) where
+  empty = SimplComb
+    { combData = Empty
+    , combInline = True
+    , combRefs = HS.empty
+    }
+  failure sf = SimplComb
+    { combData = Failure sf
+    , combInline = True
+    , combRefs = HS.empty
+    }
 
   alt _exn p@(Comb Pure{}) _ = p
     -- & trace "Left Catch Law"
@@ -123,30 +224,51 @@
     -- & trace "Associativity Law"
   alt exn (Comb (Look p)) (Comb (Look q)) = look (alt exn (try p) q)
     -- & trace "Distributivity Law"
-  alt exn x y = SomeComb (Alt exn x y)
+  alt exn x y = SimplComb
+    { combData = Alt exn x y
+    , combInline = False
+    , combRefs = combRefs x <> combRefs y
+    }
 
-  throw exn = SomeComb (Throw exn)
+  throw exn = SimplComb
+    { combData = Throw exn
+    , combInline = True
+    , combRefs = HS.empty
+    }
 
   try (Comb (p :$>: x)) = try p $> x
     -- & trace "Try Interchange Law"
   try (Comb (f :<$>: p)) = f <$> try p
     -- & trace "Try Interchange Law"
-  try x = SomeComb (Try x)
+  try x = SimplComb
+    { combData = Try x
+    , combInline = False
+    , combRefs = combRefs x
+    }
+instance
+  ( CombApplicable repr
+  , CombAlternable repr
+  , CombLookable repr
+  , CombMatchable repr
+  , CombSelectable repr
+  , Eq letName
+  , Hashable letName
+  ) => CombAlternable (KnotComb letName repr)
 
 -- CombApplicable
 data instance Comb CombApplicable repr a where
   Pure :: Production a -> Comb CombApplicable repr a
-  (:<*>:) :: SomeComb repr (a -> b) -> SomeComb repr a -> Comb CombApplicable repr b
-  (:<*:) :: SomeComb repr a -> SomeComb repr b -> Comb CombApplicable repr a
-  (:*>:) :: SomeComb repr a -> SomeComb repr b -> Comb CombApplicable repr b
+  (:<*>:) :: SimplComb repr (a -> b) -> SimplComb repr a -> Comb CombApplicable repr b
+  (:<*:) :: SimplComb repr a -> SimplComb repr b -> Comb CombApplicable repr a
+  (:*>:) :: SimplComb repr a -> SimplComb repr b -> Comb CombApplicable repr b
 infixl 4 :<*>:, :<*:, :*>:
-pattern (:<$>:) :: Production (a -> b) -> SomeComb repr a -> Comb CombApplicable repr b
+pattern (:<$>:) :: Production (a -> b) -> SimplComb repr a -> Comb CombApplicable repr b
 pattern t :<$>: x <- Comb (Pure t) :<*>: x
-pattern (:$>:) :: SomeComb repr a -> Production b -> Comb CombApplicable repr b
+pattern (:$>:) :: SimplComb repr a -> Production b -> Comb CombApplicable repr b
 pattern x :$>: t <- x :*>: Comb (Pure t)
 instance CombApplicable repr => Derivable (Comb CombApplicable repr) where
   derive = \case
-    Pure x -> pure (optimizeProduction x)
+    Pure x -> pure x
     f :<*>: x -> derive f <*> derive x
     x :<*: y -> derive x <* derive y
     x :*>: y -> derive x *> derive y
@@ -156,20 +278,24 @@
   , CombLookable repr
   , CombMatchable repr
   , CombSelectable repr
-  ) => CombApplicable (SomeComb repr) where
-  pure = SomeComb . Pure
+  ) => CombApplicable (SimplComb repr) where
+  pure a = SimplComb
+    { combData = Pure a
+    , combInline = False -- TODO: maybe True?
+    , combRefs = HS.empty
+    }
   f <$> Comb (Branch b l r) =
     branch b
       ((Prod..) Prod..@ f <$> l)
       ((Prod..) Prod..@ f <$> r)
     -- & trace "Branch Distributivity Law"
-  f <$> Comb (Conditional a ps bs d) =
-    conditional a ps
-      ((f <$>) Functor.<$> bs)
-      (f <$> d)
+  f <$> Comb (Conditional a bs def) =
+    conditional a
+      ((\(p, b) -> (p, f <$> b)) F.<$> bs)
+      (f <$> def)
     -- & trace "Conditional Distributivity Law"
   -- Being careful here to use (<*>),
-  -- instead of SomeComb (f <$> unOptComb x),
+  -- instead of SimplComb { combData = f <$> combData x },
   -- in order to apply the optimizations of (<*>).
   f <$> x = pure f <*> x
 
@@ -203,7 +329,11 @@
   p <*> Comb (NegLook q) =
     (p <*> pure Prod.unit) <* negLook q
     -- & trace "Absorption Law"
-  x <*> y = SomeComb (x :<*>: y)
+  x <*> y = SimplComb
+    { combData = x :<*>: y
+    , combInline = False
+    , combRefs = combRefs x <> combRefs y
+    }
 
   Comb Empty *> _ = empty
     -- & trace "App Right Absorption Law"
@@ -215,7 +345,11 @@
     -- & trace "Identity Law"
   u *> Comb (v :*>: w) = (u *> v) *> w
     -- & trace "Associativity Law"
-  x *> y = SomeComb (x :*>: y)
+  x *> y = SimplComb
+    { combData = x :*>: y
+    , combInline = False
+    , combRefs = combRefs x <> combRefs y
+    }
 
   Comb Empty <* _ = empty
     -- & trace "App Right Absorption Law"
@@ -229,54 +363,50 @@
     -- & trace "Identity Law"
   Comb (u :<*: v) <* w = u <* (v <* w)
     -- & trace "Associativity Law"
-  x <* y = SomeComb (x :<*: y)
+  x <* y = SimplComb
+    { combData = x :<*: y
+    , combInline = False
+    , combRefs = combRefs x <> combRefs y
+    }
+instance
+  ( CombApplicable repr
+  , CombAlternable repr
+  , CombLookable repr
+  , CombMatchable repr
+  , CombSelectable repr
+  , Eq letName
+  , Hashable letName
+  ) => CombApplicable (KnotComb letName repr)
 
 -- CombFoldable
 data instance Comb CombFoldable repr a where
-  ChainPreC :: SomeComb repr (a -> a) -> SomeComb repr a -> Comb CombFoldable repr a
-  ChainPostC :: SomeComb repr a -> SomeComb repr (a -> a) -> Comb CombFoldable repr a
+  ChainPre :: SimplComb repr (a -> a) -> SimplComb repr a -> Comb CombFoldable repr a
+  ChainPost :: SimplComb repr a -> SimplComb repr (a -> a) -> Comb CombFoldable repr a
 instance CombFoldable repr => Derivable (Comb CombFoldable repr) where
   derive = \case
-    ChainPreC x y -> chainPre (derive x) (derive y)
-    ChainPostC x y -> chainPost (derive x) (derive y)
-instance CombFoldable repr => CombFoldable (SomeComb repr) where
-  chainPre x = SomeComb . ChainPreC x
-  chainPost x = SomeComb . ChainPostC x
-
--- Letable
-data instance Comb (Letable letName) repr a where
-  Shareable :: letName -> SomeComb repr a -> Comb (Letable letName) repr a
-  Ref :: Bool -> letName -> Comb (Letable letName) repr a
-instance
-  Letable letName repr =>
-  Derivable (Comb (Letable letName) repr) where
-  derive = \case
-    Shareable n x -> shareable n (derive x)
-    Ref isRec n -> ref isRec n
-instance
-  (Letable letName repr, Typeable letName) =>
-  Letable letName (SomeComb repr) where
-  shareable n = SomeComb . Shareable n
-  ref isRec = SomeComb . Ref isRec
-
--- Letsable
-data instance Comb (Letsable letName) repr a where
-  Lets :: LetBindings letName (SomeComb repr) ->
-          SomeComb repr a -> Comb (Letsable letName) repr a
-instance
-  Letsable letName repr =>
-  Derivable (Comb (Letsable letName) repr) where
-  derive = \case
-    Lets defs x -> lets ((\(SomeLet sub) -> SomeLet (derive sub)) Functor.<$> defs) (derive x)
+    ChainPre op p -> chainPre (derive op) (derive p)
+    ChainPost p op -> chainPost (derive p) (derive op)
+instance CombFoldable repr => CombFoldable (SimplComb repr) where
+  chainPre op p = SimplComb
+    { combData = ChainPre op p
+    , combInline = False
+    , combRefs = combRefs op <> combRefs p
+    }
+  chainPost p op = SimplComb
+    { combData = ChainPost p op
+    , combInline = False
+    , combRefs = combRefs p <> combRefs op
+    }
 instance
-  (Letsable letName repr, Typeable letName) =>
-  Letsable letName (SomeComb repr) where
-  lets defs = SomeComb . Lets defs
+  ( CombFoldable repr
+  , Eq letName
+  , Hashable letName
+  ) => CombFoldable (KnotComb letName repr)
 
 -- CombLookable
 data instance Comb CombLookable repr a where
-  Look :: SomeComb repr a -> Comb CombLookable repr a
-  NegLook :: SomeComb repr a -> Comb CombLookable repr ()
+  Look :: SimplComb repr a -> Comb CombLookable repr a
+  NegLook :: SimplComb repr a -> Comb CombLookable repr ()
   Eof :: Comb CombLookable repr ()
 instance CombLookable repr => Derivable (Comb CombLookable repr) where
   derive = \case
@@ -289,7 +419,7 @@
   , CombLookable repr
   , CombSelectable repr
   , CombMatchable repr
-  ) => CombLookable (SomeComb repr) where
+  ) => CombLookable (SimplComb repr) where
   look p@(Comb Pure{}) = p
     -- & trace "Pure Look Law"
   look p@(Comb Empty) = p
@@ -302,7 +432,11 @@
     -- & trace "Interchange Law"
   look (Comb (f :<$>: p)) = f <$> look p
     -- & trace "Interchange Law"
-  look x = SomeComb (Look x)
+  look x = SimplComb
+    { combData = Look x
+    , combInline = False
+    , combRefs = combRefs x
+    }
 
   negLook (Comb Pure{}) = empty
     -- & trace "Pure Negative-Look"
@@ -319,45 +453,86 @@
     -- & trace "Transparency Law"
   negLook (Comb (p :$>: _)) = negLook p
     -- & trace "NegLook Idempotence Law"
-  negLook x = SomeComb (NegLook x)
+  negLook x = SimplComb
+    { combData = NegLook x
+    , combInline = False
+    , combRefs = combRefs x
+    }
 
-  eof = SomeComb Eof
+  eof = SimplComb
+    { combData = Eof
+    , combInline = True
+    , combRefs = HS.empty
+    }
+instance
+  ( CombLookable repr
+  , CombAlternable repr
+  , CombApplicable repr
+  , CombSelectable repr
+  , CombMatchable repr
+  , Eq letName
+  , Hashable letName
+  ) => CombLookable (KnotComb letName repr)
 
 -- CombMatchable
 data instance Comb CombMatchable repr a where
-  Conditional :: Eq a =>
-    SomeComb repr a ->
-    [Production (a -> Bool)] ->
-    [SomeComb repr b] ->
-    SomeComb repr b ->
+  Conditional ::
+    SimplComb repr a ->
+    [(Production (a -> Bool), SimplComb repr b)] ->
+    SimplComb repr b ->
     Comb CombMatchable repr b
 instance CombMatchable repr => Derivable (Comb CombMatchable repr) where
   derive = \case
-    Conditional a ps bs b ->
+    Conditional a bs def ->
       conditional (derive a)
-        (optimizeProduction Functor.<$> ps)
-        (derive Functor.<$> bs) (derive b)
+        ((\(p, b) -> (p, derive b)) F.<$> bs)
+        (derive def)
 instance
   ( CombApplicable repr
   , CombAlternable repr
   , CombLookable repr
   , CombSelectable repr
   , CombMatchable repr
-  ) => CombMatchable (SomeComb repr) where
-  conditional (Comb Empty) _ _ d = d
+  ) => CombMatchable (SimplComb repr) where
+  conditional (Comb Empty) _ def = def
     -- & trace "Conditional Absorption Law"
-  conditional p _ qs (Comb Empty)
-    | Foldable.all (\case { Comb Empty -> True; _ -> False }) qs = p *> empty
-      -- & trace "Conditional Weakening Law"
-  conditional a _ps bs (Comb Empty)
-    | Foldable.all (\case { Comb Empty -> True; _ -> False }) bs = a *> empty
+  conditional a bs (Comb Empty)
+    | Foldable.all (\case { (_, Comb Empty) -> True; _ -> False }) bs = a *> empty
       -- & trace "Conditional Weakening Law"
-  conditional (Comb (Pure a)) ps bs d =
-    Foldable.foldr (\(p, b) next ->
-      if runValue (p Prod..@ a) then b else next
-    ) d (List.zip ps bs)
+  conditional (Comb (Pure a)) bs def =
+    Foldable.foldr (\(p, b) acc ->
+      if runValue (p Prod..@ a) then b else acc
+    ) def bs
     -- & trace "Conditional Pure Law"
-  conditional a ps bs d = SomeComb (Conditional a ps bs d)
+  conditional a bs d = SimplComb
+    { combData = Conditional a bs d
+    , combInline = False
+    , combRefs = HS.unions
+        $ combRefs a
+        : combRefs d
+        : ((\(_p, b) -> combRefs b) F.<$> bs)
+    }
+instance
+  ( CombMatchable repr
+  , CombAlternable repr
+  , CombApplicable repr
+  , CombLookable repr
+  , CombSelectable repr
+  , Eq letName
+  , Hashable letName
+  ) => CombMatchable (KnotComb letName repr) where
+  conditional a bs d = KnotComb
+    { knotCombOpens = HM.unions
+        $ knotCombOpens a
+        : knotCombOpens d
+        : ((\(_p, b) -> knotCombOpens b) F.<$> bs)
+    , knotCombOpen = \final -> TiedComb
+        { combSimpl = conditional
+            (combSimpl (knotCombOpen a final))
+            ((\(p, b) -> (p, combSimpl (knotCombOpen b final))) F.<$> bs)
+            (combSimpl (knotCombOpen d final))
+        }
+    }
 
 -- CombSatisfiable
 data instance Comb (CombSatisfiable tok) repr a where
@@ -377,18 +552,28 @@
   CombSatisfiable tok repr =>
   Derivable (Comb (CombSatisfiable tok) repr) where
   derive = \case
-    SatisfyOrFail fs p -> satisfyOrFail fs (optimizeProduction p)
+    SatisfyOrFail fs p -> satisfyOrFail fs p
 instance
   (CombSatisfiable tok repr, Typeable tok) =>
-  CombSatisfiable tok (SomeComb repr) where
-  satisfyOrFail fs = SomeComb . SatisfyOrFail fs
+  CombSatisfiable tok (SimplComb repr) where
+  satisfyOrFail fs p = SimplComb
+    { combData = SatisfyOrFail fs p
+    , combInline = False -- TODO: True? depending on p?
+    , combRefs = HS.empty
+    }
+instance
+  ( CombSatisfiable tok repr
+  , Typeable tok
+  , Eq letName
+  , Hashable letName
+  ) => CombSatisfiable tok (KnotComb letName repr)
 
 -- CombSelectable
 data instance Comb CombSelectable repr a where
   Branch ::
-    SomeComb repr (Either a b) ->
-    SomeComb repr (a -> c) ->
-    SomeComb repr (b -> c) ->
+    SimplComb repr (Either a b) ->
+    SimplComb repr (a -> c) ->
+    SimplComb repr (b -> c) ->
     Comb CombSelectable repr c
 instance CombSelectable repr => Derivable (Comb CombSelectable repr) where
   derive = \case
@@ -399,7 +584,7 @@
   , CombLookable repr
   , CombSelectable repr
   , CombMatchable repr
-  ) => CombSelectable (SomeComb repr) where
+  ) => CombSelectable (SimplComb repr) where
   branch (Comb Empty) _ _ = empty
     -- & trace "Branch Absorption Law"
   branch b (Comb Empty) (Comb Empty) = b *> empty
@@ -446,4 +631,135 @@
                 Right r -> case $$(runCode lr) r of
                              Left{} -> Left ()
                              Right rr -> Right rr ||]
-  branch b l r = SomeComb (Branch b l r)
+  branch b l r = SimplComb
+    { combData = Branch b l r
+    , combInline = False
+    , combRefs = HS.unions [ combRefs b, combRefs l, combRefs r ]
+    }
+instance
+  ( CombSelectable repr
+  , CombAlternable repr
+  , CombApplicable repr
+  , CombLookable repr
+  , CombMatchable repr
+  , Eq letName
+  , Hashable letName
+  ) => CombSelectable (KnotComb letName repr)
+
+-- CombRegisterableUnscoped
+data instance Comb CombRegisterableUnscoped repr a where
+  NewUnscoped :: UnscopedRegister a -> SimplComb repr a -> SimplComb repr b -> Comb CombRegisterableUnscoped repr b
+  GetUnscoped :: UnscopedRegister a -> Comb CombRegisterableUnscoped repr a
+  PutUnscoped :: UnscopedRegister a -> SimplComb repr a -> Comb CombRegisterableUnscoped repr ()
+instance CombRegisterableUnscoped repr => Derivable (Comb CombRegisterableUnscoped repr) where
+  derive = \case
+    NewUnscoped r ini x -> newUnscoped r (derive ini) (derive x)
+    GetUnscoped r -> getUnscoped r
+    PutUnscoped r x -> putUnscoped r (derive x)
+instance -- TODO: optimizations
+  ( CombRegisterableUnscoped repr
+  ) => CombRegisterableUnscoped (SimplComb repr) where
+  newUnscoped r ini x = SimplComb
+    { combData = NewUnscoped r ini x
+    , combInline = combInline ini && combInline x
+    , combRefs = combRefs ini <> combRefs x
+    }
+  getUnscoped r = SimplComb
+    { combData = GetUnscoped r
+    , combInline = True
+    , combRefs = HS.empty
+    }
+  putUnscoped r x = SimplComb
+    { combData = PutUnscoped r x
+    , combInline = combInline x
+    , combRefs = combRefs x
+    }
+instance
+  ( CombRegisterableUnscoped repr
+  , Eq letName
+  , Hashable letName
+  ) => CombRegisterableUnscoped (KnotComb letName repr) where
+
+-- Letsable
+data instance Comb (Letsable letName) repr a where
+  Lets ::
+    LetBindings letName (SimplComb repr) ->
+    SimplComb repr a ->
+    Comb (Letsable letName) repr a
+instance
+  Letsable letName repr =>
+  Derivable (Comb (Letsable letName) repr) where
+  derive = \case
+    Lets defs x -> lets
+      ((\(SomeLet sub) -> SomeLet (derive sub)) F.<$> defs)
+      (derive x)
+instance
+  (Letsable letName repr, Typeable letName) =>
+  Letsable letName (SimplComb repr) where
+  lets defs body = SimplComb
+    { combData = Lets defs body
+    , combInline = False
+    , combRefs = HS.unions
+        $ combRefs body
+        : ((\(SomeLet sub) -> combRefs sub) F.<$> HM.elems defs)
+    }
+instance
+  Letsable TH.Name repr =>
+  Letsable TH.Name (KnotComb TH.Name repr) where
+  lets defs body = KnotComb
+    { knotCombOpens =
+        HM.unions
+          $ knotCombOpens body
+          : ((\(SomeLet sub) -> SomeLet . knotCombOpen sub) F.<$> defs)
+          -- Not really necessary to include 'knotCombOpens' of 'defs' here
+          -- since there is only a single 'lets' at the top of the AST,
+          -- but well.
+          : ((\(SomeLet sub) -> knotCombOpens sub) F.<$> HM.elems defs)
+    , knotCombOpen = \final -> TiedComb
+        { combSimpl =
+          let bodySimpl = combSimpl $ knotCombOpen body final in
+          let defsSimpl = (\(SomeLet sub) -> SomeLet $ combSimpl $ knotCombOpen sub final) F.<$> defs in
+          let defsUsed = HS.unions
+                $ combRefs bodySimpl
+                : ((\(SomeLet sub) -> combRefs sub) F.<$> HM.elems defsSimpl) in
+          lets (HM.intersection defsSimpl (HS.toMap defsUsed)) bodySimpl
+        }
+    }
+
+-- Referenceable
+data instance Comb (Referenceable letName) repr a where
+  Ref :: Bool -> letName -> Comb (Referenceable letName) repr a
+instance
+  Referenceable letName repr =>
+  Derivable (Comb (Referenceable letName) repr) where
+  derive = \case
+    Ref isRec name -> ref isRec name
+instance
+  Referenceable TH.Name repr =>
+  Referenceable TH.Name (SimplComb repr) where
+  ref isRec name = SimplComb
+    { combData = Ref isRec name
+    , combInline = not isRec
+    , combRefs = HS.singleton name
+    }
+instance
+  Referenceable TH.Name repr =>
+  Referenceable TH.Name (KnotComb TH.Name repr) where
+  ref isRec name = KnotComb
+    { knotCombOpens = HM.empty
+    , knotCombOpen = \final ->
+      if isRec
+      then TiedComb
+        { combSimpl = ref isRec name
+        }
+      else case final HM.! name of
+        SomeLet a@TiedComb
+          { combSimpl = p@SimplComb{ combInline = True }
+          } -> a{combSimpl = unsafeSimplComb p}
+        SomeLet TiedComb
+          { combSimpl = SimplComb{ combRefs = refs }
+          } -> TiedComb
+            { combSimpl = (ref isRec name)
+              { combRefs = HS.insert name refs }
+            }
+    }
diff --git a/src/Symantic/Parser/Grammar/Production.hs b/src/Symantic/Parser/Grammar/Production.hs
--- a/src/Symantic/Parser/Grammar/Production.hs
+++ b/src/Symantic/Parser/Grammar/Production.hs
@@ -21,10 +21,9 @@
 import qualified Language.Haskell.TH.Syntax as TH
 import qualified Language.Haskell.TH.Show as TH
 
-import Symantic.Typed.Data
-import Symantic.Typed.Lang
-import Symantic.Typed.Optimize
-import Symantic.Typed.Derive
+import Symantic.Data
+import Symantic.Lang
+import Symantic.Derive
 
 type Production = Product
   (SomeData Identity)
@@ -74,7 +73,7 @@
 
 instance Show (SomeData TH.CodeQ a) where
   -- The 'Derivable' constraint contained in 'SomeData'
-  -- is 'TH.CodeQ', hence 'Symantic.Typed.View' cannot be used here.
+  -- is 'TH.CodeQ', hence 'Symantic.View' cannot be used here.
   -- Fortunately 'TH.showCode' can be implemented.
   showsPrec p = showString Fun.. TH.showCode p Fun.. derive
 
@@ -117,9 +116,6 @@
   cons = Pair cons cons
 instance Equalable Production where
   equal = Pair equal equal
-
-optimizeProduction :: Production a -> Production a
-optimizeProduction (Pair v c) = Pair (normalOrderReduction v) (normalOrderReduction c)
 
 -- Identity
 instance Anythingable Identity
diff --git a/src/Symantic/Parser/Grammar/View.hs b/src/Symantic/Parser/Grammar/View.hs
--- a/src/Symantic/Parser/Grammar/View.hs
+++ b/src/Symantic/Parser/Grammar/View.hs
@@ -8,14 +8,17 @@
 import Data.Semigroup (Semigroup(..))
 import Data.String (String)
 import Data.Tuple (fst)
+import Language.Haskell.TH.HideName
 import Text.Show (Show(..))
 import qualified Data.Functor as Functor
 import qualified Data.HashMap.Strict as HM
 import qualified Data.List as List
 import qualified Data.Tree as Tree
 
-import Symantic.Typed.ObserveSharing
+import Symantic.ObserveSharing
+import Symantic.Optimize (normalOrderReduction)
 import Symantic.Parser.Grammar.Combinators
+import Symantic.Parser.Grammar.ObserveSharing
 import qualified Symantic.Parser.Grammar.Production as Prod
 
 -- * Type 'ViewGrammar'
@@ -25,6 +28,9 @@
 viewGrammar :: ViewGrammar sN a -> ViewGrammar sN a
 viewGrammar = id
 
+showProduction :: Prod.Production a -> String
+showProduction p = showsPrec 10 (normalOrderReduction (Prod.prodCode p)) ""
+
 instance Show (ViewGrammar sN a) where
   show = List.unlines . draw . unViewGrammar
     where
@@ -47,7 +53,7 @@
   try x = ViewGrammar $ Tree.Node ("try", "") [unViewGrammar x]
 instance CombApplicable (ViewGrammar sN) where
   _f <$> x = ViewGrammar $ Tree.Node ("<$>", "") [unViewGrammar x]
-  pure a = ViewGrammar $ Tree.Node ("pure " <> showsPrec 10 (Prod.prodCode a) "", "") []
+  pure a = ViewGrammar $ Tree.Node ("pure "<>showProduction a, "") []
   x <*> y = ViewGrammar $ Tree.Node ("<*>", "") [unViewGrammar x, unViewGrammar y]
   x <* y = ViewGrammar $ Tree.Node ("<*", "") [unViewGrammar x, unViewGrammar y]
   x *> y = ViewGrammar $ Tree.Node ("*>", "") [unViewGrammar x, unViewGrammar y]
@@ -55,38 +61,44 @@
   chainPre f x = ViewGrammar $ Tree.Node ("chainPre", "") [unViewGrammar f, unViewGrammar x]
   chainPost x f = ViewGrammar $ Tree.Node ("chainPost", "") [unViewGrammar x, unViewGrammar f]
 instance
-  ShowLetName sN letName =>
-  Letable letName (ViewGrammar sN) where
-  shareable name x = ViewGrammar $
-    Tree.Node ("shareable", " "<>showLetName @sN name) [unViewGrammar x]
+  ( Show letName
+  , HideName letName
+  , HideableName sN
+  ) => Referenceable letName (ViewGrammar sN) where
   ref isRec name = ViewGrammar $
     Tree.Node
       ( if isRec then "rec" else "ref"
-      , " "<>showLetName @sN name
+      , " "<>show (hideableName @sN name)
       ) []
 instance
-  ShowLetName sN letName =>
-  Letsable letName (ViewGrammar sN) where
+  ( Show letName
+  , HideName letName
+  , HideableName sN
+  ) => Letsable letName (ViewGrammar sN) where
   lets defs x = ViewGrammar $
     Tree.Node ("lets", "") $
       (<> [unViewGrammar x]) $
       List.sortBy (compare `on` (((fst Functor.<$>) Functor.<$>) . Tree.levels)) $
       HM.foldrWithKey'
         (\name (SomeLet val) ->
-          (Tree.Node ("let", " "<>showLetName @sN name) [unViewGrammar val] :))
+          (Tree.Node ("let", " "<>show (hideableName @sN name)) [unViewGrammar val] :))
         [] defs
 instance CombLookable (ViewGrammar sN) where
   look x = ViewGrammar $ Tree.Node ("look", "") [unViewGrammar x]
   negLook x = ViewGrammar $ Tree.Node ("negLook", "") [unViewGrammar x]
   eof = ViewGrammar $ Tree.Node ("eof", "") []
 instance CombMatchable (ViewGrammar sN) where
-  conditional a _ps bs b = ViewGrammar $ Tree.Node ("conditional", "")
-    [ unViewGrammar a
-    , Tree.Node ("branches", "") (unViewGrammar Functor.<$> bs)
-    , unViewGrammar b
-    ]
+  conditional a bs d = ViewGrammar $ Tree.Node ("conditional", "")
+    $ Tree.Node ("condition", "") [unViewGrammar a]
+    : Tree.Node ("default", "") [unViewGrammar d]
+    : ((\(p,b) -> Tree.Node ("branch "<>showProduction p, "") [unViewGrammar b]) Functor.<$> bs)
 instance CombSatisfiable tok (ViewGrammar sN) where
-  satisfyOrFail _fs _p = ViewGrammar $ Tree.Node ("satisfy", "") []
+  satisfyOrFail _fs p = ViewGrammar $ Tree.Node
+    ("satisfy "<>showProduction p, "") []
 instance CombSelectable (ViewGrammar sN) where
   branch lr l r = ViewGrammar $ Tree.Node ("branch", "")
     [ unViewGrammar lr, unViewGrammar l, unViewGrammar r ]
+instance CombRegisterableUnscoped (ViewGrammar sN) where
+  newUnscoped r x y = ViewGrammar $ Tree.Node ("new "<>show r, "") [ unViewGrammar x,  unViewGrammar y ]
+  getUnscoped r = ViewGrammar $ Tree.Node ("get "<>show r, "") [ ]
+  putUnscoped r x = ViewGrammar $ Tree.Node ("put "<>show r, "") [ unViewGrammar x ]
diff --git a/src/Symantic/Parser/Grammar/Write.hs b/src/Symantic/Parser/Grammar/Write.hs
--- a/src/Symantic/Parser/Grammar/Write.hs
+++ b/src/Symantic/Parser/Grammar/Write.hs
@@ -1,13 +1,14 @@
 {-# LANGUAGE OverloadedStrings #-}
 module Symantic.Parser.Grammar.Write where
 
-import Data.Bool (Bool(..))
 import Control.Monad (Monad(..))
+import Data.Bool (Bool(..))
 import Data.Function (($))
 import Data.Maybe (Maybe(..), fromMaybe, catMaybes)
 import Data.Monoid (Monoid(..))
 import Data.Semigroup (Semigroup(..))
 import Data.String (IsString(..))
+import Language.Haskell.TH.HideName
 import Text.Show (Show(..))
 import qualified Data.Functor as Functor
 import qualified Data.HashMap.Strict as HM
@@ -15,8 +16,8 @@
 import qualified Data.Text.Lazy as TL
 import qualified Data.Text.Lazy.Builder as TLB
 
-import Symantic.Typed.ObserveSharing
-import Symantic.Typed.Fixity
+import Symantic.ObserveSharing
+import Symantic.Fixity
 import Symantic.Parser.Grammar.Combinators
 
 -- * Type 'WriteGrammar'
@@ -83,7 +84,7 @@
     where
     op = infixN 9
 instance CombApplicable (WriteGrammar sN) where
-  pure _ = WriteGrammar $ return Nothing
+  pure _ = WriteGrammar $ return Nothing{-TODO: print?-}
   -- pure _ = "pure"
   WriteGrammar x <*> WriteGrammar y = WriteGrammar $ \inh ->
     let inh' side = inh
@@ -114,30 +115,27 @@
       unWriteGrammar x inh
     where op = infixN 9
 instance
-  ShowLetName sN letName =>
-  Letable letName (WriteGrammar sN) where
-  shareable name x = WriteGrammar $ \inh ->
-    pairWriteGrammarInh inh op $
-      Just "shareable "
-      <> Just (fromString (showLetName @sN name))
-      <> unWriteGrammar x inh
-    where
-    op = infixN 9
-  ref rec name = WriteGrammar $ \inh ->
+  ( Show letName
+  , HideName letName
+  , HideableName sN
+  ) => Referenceable letName (WriteGrammar sN) where
+  ref isRec name = WriteGrammar $ \inh ->
     pairWriteGrammarInh inh op $
-      Just (if rec then "rec " else "ref ") <>
-      Just (fromString (showLetName @sN name))
+      Just (if isRec then "rec " else "ref ") <>
+      Just (fromString (show (hideableName @sN name)))
     where
     op = infixN 9
 instance
-  ShowLetName sN letName =>
-  Letsable letName (WriteGrammar sN) where
+  ( Show letName
+  , HideName letName
+  , HideableName sN
+  ) => Letsable letName (WriteGrammar sN) where
   lets defs x = WriteGrammar $ \inh ->
     pairWriteGrammarInh inh op $
       Just "let "
       <> HM.foldMapWithKey
         (\name (SomeLet val) ->
-          Just (fromString (showLetName @sN name))
+          Just (fromString (show (hideableName @sN name)))
           <> unWriteGrammar val inh)
         defs
       <> unWriteGrammar x inh
@@ -154,16 +152,16 @@
     where op = infixN 9
   eof = "eof"
 instance CombMatchable (WriteGrammar sN) where
-  conditional a _ps bs d = WriteGrammar $ \inh ->
+  conditional a bs d = WriteGrammar $ \inh ->
     pairWriteGrammarInh inh op $
       Just "conditional " <>
       unWriteGrammar a inh <>
+      unWriteGrammar d inh <>
       Just " [" <>
       Just (mconcat (List.intersperse ", " $
-      catMaybes $ (Functor.<$> bs) $ \x ->
-        unWriteGrammar x inh{writeGrammarInh_op=(infixN 0, SideL)})) <>
-      Just "] " <>
-      unWriteGrammar d inh
+      catMaybes $ (Functor.<$> bs) $ \(p{-TODO: print?-}, b) ->
+        unWriteGrammar b inh{writeGrammarInh_op=(infixN 0, SideL)})) <>
+      Just "] "
     where
     op = infixN 9
 instance CombSatisfiable tok (WriteGrammar sN) where
diff --git a/src/Symantic/Parser/Machine.hs b/src/Symantic/Parser/Machine.hs
--- a/src/Symantic/Parser/Machine.hs
+++ b/src/Symantic/Parser/Machine.hs
@@ -7,9 +7,9 @@
   , module Symantic.Parser.Machine.Program
   , module Symantic.Parser.Machine.View
   ) where
-import Data.Function ((.))
+
 import System.IO (IO)
-import qualified Language.Haskell.TH.Syntax as TH
+import Data.Function ((.))
 
 import Symantic.Parser.Grammar
 import Symantic.Parser.Machine.Generate
@@ -20,9 +20,7 @@
 import Symantic.Parser.Machine.View
 
 -- * Type 'Machine'
-type Machine repr inp =
-  ObserveSharing TH.Name
-                 (OptimizeGrammar (Program repr inp))
+type Machine repr inp = Grammar (Program repr inp)
 
 -- | Build a 'Machine' able to 'generateCode' for the given 'Parser'.
 machine :: forall inp repr a.
diff --git a/src/Symantic/Parser/Machine/Generate.hs b/src/Symantic/Parser/Machine/Generate.hs
--- a/src/Symantic/Parser/Machine/Generate.hs
+++ b/src/Symantic/Parser/Machine/Generate.hs
@@ -5,6 +5,7 @@
 {-# LANGUAGE ConstraintKinds #-} -- For Dict
 {-# LANGUAGE TemplateHaskell #-}
 {-# LANGUAGE TupleSections #-}
+{-# LANGUAGE MagicHash #-}
 {-# LANGUAGE UnboxedTuples #-} -- For nextInput
 {-# LANGUAGE UndecidableInstances #-} -- For Show (ParsingError inp)
 {-# OPTIONS_GHC -fno-warn-orphans #-}
@@ -12,12 +13,14 @@
 
 import Control.DeepSeq (NFData(..))
 import Control.Monad (Monad(..))
-import Data.Bool (Bool)
+import Control.Monad.ST (ST, runST)
+import Data.Bool (Bool(..), otherwise)
 import Data.Char (Char)
-import Data.Either (Either(..), either)
-import Data.Foldable (foldMap', toList, null)
-import Data.Function (($), (.), id, const, on)
-import Data.Functor (Functor, (<$>), (<$))
+import Data.Either (Either(..))
+import Data.Eq (Eq(..))
+import Data.Foldable (foldr, toList, null)
+import Data.Function (($), (.), on)
+import Data.Functor ((<$>))
 import Data.Int (Int)
 import Data.List.NonEmpty (NonEmpty(..))
 import Data.Map (Map)
@@ -28,6 +31,7 @@
 import Data.Set (Set)
 import Data.String (String)
 import Data.Traversable (Traversable(..))
+import Data.Tuple (snd)
 import Data.Typeable (Typeable)
 import Data.Word (Word8)
 import GHC.Generics (Generic)
@@ -42,17 +46,27 @@
 import qualified Data.Map.Strict as Map
 import qualified Data.Set as Set
 import qualified Data.Set.Internal as Set_
+import qualified Data.STRef as ST
 import qualified Language.Haskell.TH as TH
 import qualified Language.Haskell.TH.Syntax as TH
 
-import Symantic.Typed.Derive
-import Symantic.Typed.ObserveSharing
-import Symantic.Parser.Grammar.Combinators (Exception(..), Failure(..), SomeFailure(..), inputTokenProxy)
+import qualified Symantic.Data as Sym
+import Symantic.Derive
+import Symantic.ObserveSharing
+import qualified Symantic.Parser.Grammar as Gram
+import Symantic.Parser.Grammar.Combinators
+  ( UnscopedRegister(..)
+  , Exception(..)
+  , Failure(..)
+  , SomeFailure(..)
+  , unSomeFailure
+  , inputTokenProxy
+  )
 import Symantic.Parser.Machine.Input
 import Symantic.Parser.Machine.Instructions
 import qualified Language.Haskell.TH.HideName as TH
-import qualified Symantic.Typed.Lang as Prod
-import qualified Symantic.Typed.Optimize as Prod
+import qualified Symantic.Lang as Prod
+import qualified Symantic.Optimize as Prod
 
 --import Debug.Trace
 
@@ -63,62 +77,79 @@
 -- * Type 'Gen'
 -- | Generate the 'CodeQ' parsing the input.
 data Gen inp vs a = Gen
-  { genAnalysisByLet :: LetMapFix (CallTrace -> GenAnalysis)
+  { genAnalysisByLet :: OpenRecs TH.Name GenAnalysis
     -- ^ 'genAnalysis' for each 'defLet' and 'defJoin' of the 'Machine'.
-  , genAnalysis :: LetMapTo (CallTrace -> GenAnalysis)
+  , genAnalysis :: OpenRec TH.Name GenAnalysis
     -- ^ Synthetized (bottom-up) static genAnalysis of the 'Machine'.
-  , unGen ::
-      GenCtx inp vs a ->
-      CodeQ (Either (ParsingError inp) a)
+  , unGen :: forall st.
+      GenCtx st inp vs a ->
+      CodeQ (ST st (Either (ParsingError inp) a))
   }
 
+{-# INLINE returnST #-}
+returnST :: forall s a. a -> ST s a
+returnST = return @(ST s)
+
 -- | @('generateCode' input mach)@ generates @TemplateHaskell@ code
 -- parsing the given 'input' according to the given 'Machine'.
 generateCode ::
-  {-
-  Eq (InputToken inp) =>
-  NFData (InputToken inp) =>
+  -- Not really used constraints,
+  -- just to please 'checkHorizon'.
+  Ord (InputToken inp) =>
   Show (InputToken inp) =>
-  Typeable (InputToken inp) =>
   TH.Lift (InputToken inp) =>
-  -}
-  -- InputToken inp ~ Char =>
+  NFData (InputToken inp) =>
+  Typeable (InputToken inp) =>
   Inputable inp =>
   Show (Cursor inp) =>
   Gen inp '[] a ->
   CodeQ (inp -> Either (ParsingError inp) a)
-generateCode k = [|| \(input :: inp) ->
+generateCode gen =
+    let Gen{unGen=k, ..} = checkHorizon gen in
+    [|| \(input :: inp) ->
     -- Pattern bindings containing unlifted types
     -- should use an outermost bang pattern.
     let !(# init, readMore, readNext #) = $$(cursorOf [||input||])
-        finalRet = \_farInp _farExp v _inp -> Right v
-        finalRaise :: forall b. (Catcher inp b)
+        finalRet = \_farInp _farExp v _inp -> returnST $ Right v
+        finalRaise :: forall st b. (OnException st inp b)
           = \ !exn _failInp !farInp !farExp ->
-          Left ParsingError
+          returnST $ Left ParsingError
           { parsingErrorOffset = offset farInp
           , parsingErrorException = exn
           , parsingErrorUnexpected =
               if readMore farInp
               then Just (let (# c, _ #) = readNext farInp in c)
               else Nothing
-          , parsingErrorExpecting = farExp
+          , parsingErrorExpecting =
+              let (minHoriz, res) =
+                    Set.foldr (\f (minH, acc) ->
+                      case unSomeFailure f of
+                        Just (FailureHorizon h :: Failure (Gram.CombSatisfiable (InputToken inp)))
+                          | Just old <- minH -> (Just (min old h), acc)
+                          | otherwise -> (Just h, acc)
+                        _ -> (minH, f:acc)
+                      ) (Nothing, []) farExp in
+              Set.fromList $ case minHoriz of
+                Just h -> SomeFailure (FailureHorizon @(InputToken inp) h) : res
+                Nothing -> res
           }
-    in
-    $$(
-      let defInputTokenProxy exprCode =
-            TH.unsafeCodeCoerce $ do
-              value <- TH.unTypeQ $ TH.examineCode [||Proxy :: Proxy (InputToken inp)||]
-              expr <- TH.unTypeQ (TH.examineCode exprCode)
-              return $ TH.LetE [
-                TH.FunD inputTokenProxy [TH.Clause [] (TH.NormalB value) []]
-                ] expr
-      in defInputTokenProxy $
-      unGen k GenCtx
+    in runST $$(
+      let
+        -- | Defines 'inputTokenProxy' so that the TemplateHaskell code
+        -- can refer to @(InputToken inp)@ through it.
+        defInputTokenProxy :: TH.CodeQ a -> TH.CodeQ a
+        defInputTokenProxy exprCode =
+          TH.unsafeCodeCoerce [|
+            let $(return (TH.VarP inputTokenProxy)) = Proxy :: Proxy (InputToken inp) in
+            $(TH.unTypeQ (TH.examineCode exprCode))
+          |]
+      in
+      defInputTokenProxy $
+      k GenCtx
         { valueStack = ValueStackEmpty
-        , catchStackByLabel = Map.empty
+        , onExceptionStackByLabel = Map.empty :: Map Exception (NonEmpty (TH.CodeQ (OnException s inp a)))
         , defaultCatch = [||finalRaise||]
-        , callStack = []
-        , retCode = [||finalRet||]
+        , onReturn = [||finalRet||] :: CodeQ (OnReturn s inp a a)
         , input = [||init||]
         , nextInput = [||readNext||]
         , moreInput = [||readMore||]
@@ -126,8 +157,7 @@
         , farthestInput = [||init||]
         , farthestExpecting = [||Set.empty||]
         , checkedHorizon = 0
-        , horizonStack = []
-        , finalGenAnalysisByLet = runGenAnalysis (genAnalysisByLet k)
+        , analysisByLet = mutualFix genAnalysisByLet
         }
       )
     ||]
@@ -177,68 +207,54 @@
 
 -- * Type 'GenAnalysis'
 data GenAnalysis = GenAnalysis
-  { minReads :: Either Exception Horizon
+  { minReads :: Horizon
+    -- ^ The minimun number of input tokens to read
+    -- on the current 'input' to reach a success.
   , mayRaise :: Map Exception ()
+    -- ^ The 'Exception's that may be raised depending on the 'input'.
+  , alwaysRaise :: Set Exception
+    -- ^ The 'Exception's raised whatever is or happen to the 'input'.
+  , freeRegs :: Set TH.Name
+    -- ^ The free registers that are used.
   } deriving (Show)
 
--- | Tie the knot between mutually recursive 'TH.Name's
--- introduced by 'defLet' and 'defJoin'.
--- and provide the empty initial 'CallTrace' stack
-runGenAnalysis ::
-  LetMapFix (CallTrace -> GenAnalysis) ->
-  LetMap GenAnalysis
-runGenAnalysis ga = (($ []) <$>) $ polyfix ga
-
--- | Poly-variadic fixpoint combinator.
--- Used to express mutual recursion and to transparently introduce memoization,
--- more precisely to "tie the knot"
--- between observed sharing ('defLet', 'call', 'jump')
--- and also between join points ('defJoin', 'refJoin').
--- Because it's enough for its usage here,
--- all mutually dependent functions are restricted to the same polymorphic type @(a)@.
--- See http://okmij.org/ftp/Computation/fixed-point-combinators.html#Poly-variadic
-polyfix :: Functor f => f (f a -> a) -> f a
-polyfix fs = fix $ \finals -> ($ finals) <$> fs
-
-fix :: (a -> a) -> a
-fix f = final where final = f final
-
-type LetMap = HM.HashMap TH.Name
-type LetMapTo a = LetMap a -> a
-type LetMapFix a = LetMap (LetMap a -> a)
-
--- | Call trace stack updated by 'call' and 'refJoin'.
--- Used to avoid infinite loops when tying the knot with 'polyfix'.
-type CallTrace = [TH.Name]
-
 -- ** Type 'Offset'
 type Offset = Int
 -- ** Type 'Horizon'
 -- | Minimal input length required for a successful parsing.
 type Horizon = Offset
 
--- altGenAnalysis = List.foldl' (\acc x -> either Left (\h -> Right (either (const h) (min h) acc)) x)
 -- | Merge given 'GenAnalysis' as sequences.
 seqGenAnalysis :: NonEmpty GenAnalysis -> GenAnalysis
 seqGenAnalysis aas@(a:|as) = GenAnalysis
-  { minReads = List.foldl' (\acc x ->
-        acc >>= \r -> (r +) <$> minReads x
-      ) (minReads a) as
+  { minReads = List.foldl' (\acc -> (acc +) . minReads) (minReads a) as
   , mayRaise = sconcat (mayRaise <$> aas)
+  , alwaysRaise = sconcat (alwaysRaise <$> aas)
+  , freeRegs = sconcat (freeRegs <$> aas)
   }
 -- | Merge given 'GenAnalysis' as alternatives.
 altGenAnalysis :: NonEmpty GenAnalysis -> GenAnalysis
-altGenAnalysis aas@(a:|as) = GenAnalysis
-  { minReads = List.foldl' (\acc x ->
-      either
-        (\l -> either (const (Left  l)) Right)
-        (\r -> either (const (Right r)) (Right . min r))
-        acc (minReads x)
-      ) (minReads a) as
+altGenAnalysis aas = GenAnalysis
+  { minReads =
+      case
+        (`NE.filter` aas) $ \a ->
+          -- If an alternative 'alwaysRaise's 'ExceptionFailure' whatever its 'input' is,
+          -- it __should__ remain semantically the same (up to the exact 'Failure's)
+          -- to raise an 'ExceptionFailure' even before knowing
+          -- whether that alternative branch will be taken or not,
+          -- hence an upstream 'checkHorizon' is allowed to raise an 'ExceptionFailure'
+          -- based only upon the 'minReads' of such alternatives:
+          Set.toList (alwaysRaise a) /= [ExceptionFailure]
+      of
+      [] -> 0
+      a:as -> List.foldl' (\acc -> min acc . minReads) (minReads a) as
   , mayRaise = sconcat (mayRaise <$> aas)
+  , alwaysRaise = foldr Set.intersection Set.empty (alwaysRaise <$> aas)
+  , freeRegs = sconcat (freeRegs <$> aas)
   }
 
 
+
 {-
 -- *** Type 'FarthestError'
 data FarthestError inp = FarthestError
@@ -250,24 +266,22 @@
 -- ** Type 'GenCtx'
 -- | This is an inherited (top-down) context
 -- only present at compile-time, to build TemplateHaskell splices.
-data GenCtx inp vs a =
+data GenCtx st inp vs a =
   ( Cursorable (Cursor inp)
-  {-
+  -- For checkHorizon
   , TH.Lift (InputToken inp)
   , Show (InputToken inp)
   , Eq (InputToken inp)
+  , Ord (InputToken inp)
   , Typeable (InputToken inp)
   , NFData (InputToken inp)
-  -}
   ) => GenCtx
   { valueStack :: ValueStack vs
-  , catchStackByLabel :: Map Exception (NonEmpty (CodeQ (Catcher inp a)))
-    -- | Default 'Catcher' defined at the begining of the generated 'CodeQ',
+  , onExceptionStackByLabel :: Map Exception (NonEmpty (CodeQ (OnException st inp a)))
+    -- | Default 'OnException' defined at the begining of the generated 'CodeQ',
     -- hence a constant within the 'Gen'eration.
-  , defaultCatch :: forall b. CodeQ (Catcher inp b)
-    -- | Used by 'checkToken' to get 'GenAnalysis' from 'genAnalysis'.
-  , callStack :: [TH.Name]
-  , retCode :: CodeQ (Cont inp a a)
+  , defaultCatch :: forall b. CodeQ (OnException st inp b)
+  , onReturn :: CodeQ (OnReturn st inp a a)
   , input :: CodeQ (Cursor inp)
   , moreInput :: CodeQ (Cursor inp -> Bool)
   , nextInput :: CodeQ (Cursor inp -> (# InputToken inp, Cursor inp #))
@@ -280,11 +294,8 @@
     -- Updated by 'checkHorizon'
     -- and reset elsewhere when needed.
   , checkedHorizon :: Horizon
-  -- | Used by 'pushInput' and 'loadInput'
-  -- to restore the 'Horizon' at the restored 'input'.
-  , horizonStack :: [Horizon]
-  -- | Output of 'runGenAnalysis'.
-  , finalGenAnalysisByLet :: LetMap GenAnalysis
+  -- | Output of 'mutualFix'.
+  , analysisByLet :: LetRecs TH.Name GenAnalysis
   }
 
 -- ** Type 'ValueStack'
@@ -295,21 +306,41 @@
     , valueStackTail :: ValueStack vs
     } -> ValueStack (v ': vs)
 
+instance InstrComment Gen where
+  comment msg k = k
+    { unGen = \ctx -> {-trace "unGen.comment" $-}
+      [||
+        let _ = $$(liftTypedString $ "comment: "<>msg) in
+        $$(unGen k ctx)
+      ||]
+    }
 instance InstrValuable Gen where
   pushValue x k = k
-    { unGen = \ctx -> {-trace "unGen.pushValue" $-} unGen k ctx
-      { valueStack = ValueStackCons x (valueStack ctx) }
+    { unGen = \ctx -> {-trace "unGen.pushValue" $-}
+      [||
+      let _ = "pushValue" in
+      $$(unGen k ctx
+        { valueStack = ValueStackCons x (valueStack ctx) })
+      ||]
     }
   popValue k = k
-    { unGen = \ctx -> {-trace "unGen.popValue" $-} unGen k ctx
-      { valueStack = valueStackTail (valueStack ctx) }
+    { unGen = \ctx -> {-trace "unGen.popValue" $-}
+      [||
+      let _ = "popValue" in
+      $$(unGen k ctx
+        { valueStack = valueStackTail (valueStack ctx) })
+      ||]
     }
   lift2Value f k = k
-    { unGen = \ctx -> {-trace "unGen.lift2Value" $-} unGen k ctx
-      { valueStack =
-        let ValueStackCons y (ValueStackCons x vs) = valueStack ctx in
-        ValueStackCons (f Prod..@ x Prod..@ y) vs
-      }
+    { unGen = \ctx -> {-trace "unGen.lift2Value" $-}
+      [||
+      let _ = $$(liftTypedString ("lift2Value checkedHorizon="<>show (checkedHorizon ctx))) in
+      $$(unGen k ctx
+        { valueStack =
+          let ValueStackCons y (ValueStackCons x vs) = valueStack ctx in
+          ValueStackCons (f Prod..@ x Prod..@ y) vs
+        })
+      ||]
     }
   swapValue k = k
     { unGen = \ctx -> {-trace "unGen.swapValue" $-} unGen k ctx
@@ -321,7 +352,9 @@
 instance InstrBranchable Gen where
   caseBranch kx ky = Gen
     { genAnalysisByLet = genAnalysisByLet kx <> genAnalysisByLet ky
-    , genAnalysis = \final ct -> altGenAnalysis $ genAnalysis kx final ct :| [genAnalysis ky final ct]
+    , genAnalysis = \final -> altGenAnalysis $
+        genAnalysis kx final :|
+        [genAnalysis ky final]
     , unGen = \ctx -> {-trace "unGen.caseBranch" $-}
       let ValueStackCons v vs = valueStack ctx in
       [||
@@ -330,30 +363,35 @@
           Right y -> $$(unGen ky ctx{ valueStack = ValueStackCons (splice [||y||]) vs })
       ||]
     }
-  choicesBranch fs ks kd = Gen
-    { genAnalysisByLet = sconcat $ genAnalysisByLet kd :| (genAnalysisByLet <$> ks)
-    , genAnalysis = \final ct -> altGenAnalysis $ (\k -> genAnalysis k final ct) <$> (kd:|ks)
-    , unGen = \ctx -> {-trace "unGen.choicesBranch" $-}
-      let ValueStackCons v vs = valueStack ctx in
-      go ctx{valueStack = vs} v fs ks
+  choicesBranch bs default_ = Gen
+    { genAnalysisByLet = sconcat $ genAnalysisByLet default_ :| (genAnalysisByLet . snd <$> bs)
+    , genAnalysis = \final -> altGenAnalysis $
+        (\k -> genAnalysis k final)
+        <$> (default_:|(snd <$> bs))
+    , unGen = \ctx0 -> {-trace "unGen.choicesBranch" $-}
+      let ValueStackCons v vs = valueStack ctx0 in
+      let ctx = ctx0{valueStack = vs} in
+      let
+        go x ((p,b):bs') = [||
+          if $$(genCode (p Prod..@ x))
+          then
+            let _ = $$(liftTypedString ("choicesBranch checkedHorizon="<>show (checkedHorizon ctx))) in
+            $$({-trace "unGen.choicesBranch.b" $-} unGen b ctx)
+          else
+            let _ = "choicesBranch.else" in
+            $$(go x bs')
+          ||]
+        go _ _ = unGen default_ ctx
+      in go v bs
     }
-    where
-    go ctx x (f:fs') (k:ks') = [||
-      if $$(genCode (f Prod..@ x))
-      then
-        let _ = "choicesBranch.then" in
-        $$({-trace "unGen.choicesBranch.k" $-} unGen k ctx)
-      else
-        let _ = "choicesBranch.else" in
-        $$(go ctx x fs' ks')
-      ||]
-    go ctx _ _ _ = unGen kd ctx
 instance InstrExceptionable Gen where
   raise exn = Gen
     { genAnalysisByLet = HM.empty
-    , genAnalysis = \_final _ct -> GenAnalysis
-        { minReads = Left (ExceptionLabel exn)
+    , genAnalysis = \_final -> GenAnalysis
+        { minReads = 0
         , mayRaise = Map.singleton (ExceptionLabel exn) ()
+        , alwaysRaise = Set.singleton (ExceptionLabel exn)
+        , freeRegs = Set.empty
         }
     , unGen = \ctx@GenCtx{} -> {-trace ("unGen.raise: "<>show exn) $-} [||
         $$(raiseException ctx (ExceptionLabel exn))
@@ -365,9 +403,11 @@
     }
   fail fs = Gen
     { genAnalysisByLet = HM.empty
-    , genAnalysis = \_final _ct -> GenAnalysis
-        { minReads = Left ExceptionFailure
+    , genAnalysis = \_final -> GenAnalysis
+        { minReads = 0
         , mayRaise = Map.singleton ExceptionFailure ()
+        , alwaysRaise = Set.singleton ExceptionFailure
+        , freeRegs = Set.empty
         }
     , unGen = \ctx@GenCtx{} -> {-trace ("unGen.fail: "<>show exn) $-}
       if null fs
@@ -382,81 +422,90 @@
     }
   commit exn k = k
     { unGen = \ctx -> {-trace ("unGen.commit: "<>show exn) $-}
-      unGen k ctx{catchStackByLabel =
+      [||
+      let _ = "commit" in
+      $$(unGen k ctx{onExceptionStackByLabel =
         Map.update (\case
             _r0:|(r1:rs) -> Just (r1:|rs)
             _ -> Nothing
           )
-        exn (catchStackByLabel ctx)
-      }
+        exn (onExceptionStackByLabel ctx)
+      })
+      ||]
     }
-  catch exn ok ko = Gen
-    { genAnalysisByLet = genAnalysisByLet ok <> genAnalysisByLet ko
-    , genAnalysis = \final ct ->
-        let okGA = genAnalysis ok final ct in
+  catch exn k onExn = Gen
+    { genAnalysisByLet = genAnalysisByLet k <> genAnalysisByLet onExn
+    , genAnalysis = \final ->
+        let kAnalysis = genAnalysis k final in
+        let onExnAnalysis = genAnalysis onExn final in
         altGenAnalysis $
-          okGA{ mayRaise = Map.delete exn (mayRaise okGA) } :|
-          [ genAnalysis ko final ct ]
+          kAnalysis
+            { mayRaise = Map.delete exn (mayRaise kAnalysis)
+            , alwaysRaise = Set.delete exn (alwaysRaise kAnalysis)
+            } :|
+          [ onExnAnalysis ]
     , unGen = \ctx@GenCtx{} -> {-trace ("unGen.catch: "<>show exn) $-} [||
-        let _ = $$(liftTypedString ("catch "<>show exn)) in
-        let catchHandler !_exn !failInp !farInp !farExp =
-              let _ = $$(liftTypedString ("catch.ko "<>show exn)) in
-              $$({-trace ("unGen.catch.ko: "<>show exn) $-} unGen ko ctx
-                -- Push 'input' and 'checkedHorizon'
-                -- as they were when entering 'catch',
-                -- they will be available to 'loadInput', if any.
-                { valueStack =
-                    ValueStackCons (splice (input ctx)) $
-                    --ValueStackCons (Prod.var [||exn||]) $
-                    valueStack ctx
-                , horizonStack =
-                    checkedHorizon ctx : horizonStack ctx
-                -- Note that 'catchStackByLabel' is reset.
-                -- Move the input to the failing position.
-                , input = [||failInp||]
-                -- The 'checkedHorizon' at the 'raise's are not known here.
-                -- Nor whether 'failInp' is after 'checkedHorizon' or not.
-                -- Hence fallback to a safe value.
-                , checkedHorizon = 0
-                -- Set the farthestInput to the farthest computed in 'fail'.
-                , farthestInput = [||farInp||]
-                , farthestExpecting = [||farExp||]
-                })
-        in
-        $$({-trace ("unGen.catch.ok: "<>show es) $-} unGen ok ctx
-        { catchStackByLabel =
+        let _ = $$(liftTypedString ("catch "<>show exn<>" checkedHorizon="<>show (checkedHorizon ctx))) in
+        let onException = $$(onExceptionCode (input ctx) (checkedHorizon ctx) onExn ctx) in
+        $$(unGen k ctx
+        { onExceptionStackByLabel =
             Map.insertWith (<>) exn
-              (NE.singleton [||catchHandler||])
-              (catchStackByLabel ctx)
+              (NE.singleton [||onException||])
+              (onExceptionStackByLabel ctx)
         }
       ) ||]
     }
+-- ** Class 'SpliceInputable'
+-- | Record an 'input' and a 'checkedHorizon' together
+-- to be able to put both of them on the 'valueStack',
+-- and having them moved together by operations
+-- on the 'valueStack' (eg. 'lift2Value').
+-- Used by 'saveInput' and 'loadInput'.
+class SpliceInputable repr where
+  inputSave :: CodeQ inp -> Horizon -> repr inp
+data instance Sym.Data SpliceInputable repr a where
+  InputSave :: CodeQ inp -> Horizon -> Sym.Data SpliceInputable repr inp
+instance SpliceInputable (Sym.Data SpliceInputable repr) where
+  inputSave = InputSave
+instance SpliceInputable repr => SpliceInputable (Sym.SomeData repr) where
+  inputSave inp = Sym.SomeData . InputSave inp
+instance SpliceInputable TH.CodeQ where
+  inputSave inp _hor = inp
+instance SpliceInputable repr => Derivable (Sym.Data SpliceInputable repr) where
+  derive = \case
+    InputSave inp hor -> inputSave inp hor
 instance InstrInputable Gen where
-  pushInput k = k
+  saveInput k = k
     { unGen = \ctx ->
-        {-trace "unGen.pushInput" $-}
-        unGen k ctx
-          { valueStack = splice (input ctx) `ValueStackCons` valueStack ctx
-          , horizonStack = checkedHorizon ctx : horizonStack ctx
-          }
+        {-trace "unGen.saveInput" $-}
+        [||
+        let _ = $$(liftTypedString $ "saveInput checkedHorizon="<>show (checkedHorizon ctx)) in
+        $$(unGen k ctx
+          { valueStack = inputSave (input ctx) (checkedHorizon ctx) `ValueStackCons` valueStack ctx
+          })
+        ||]
     }
   loadInput k = k
-    { unGen = \ctx ->
+    { unGen = \ctx@GenCtx{} ->
         {-trace "unGen.loadInput" $-}
-        let ValueStackCons input vs = valueStack ctx in
-        let (h, hs) = case horizonStack ctx of
-                        [] -> (0, [])
-                        x:xs -> (x, xs) in
-        unGen k ctx
+        let ValueStackCons v vs = valueStack ctx in
+        let (input, checkedHorizon) = case v of
+              Sym.Data (InputSave i h) -> (i, h)
+              -- This case should never happen if 'saveInput' is used.
+              i -> (genCode i, 0) in
+        [||
+        let _ = $$(liftTypedString $ "loadInput checkedHorizon="<>show checkedHorizon) in
+        $$(unGen (checkHorizon k) ctx
           { valueStack = vs
-          , horizonStack = hs
-          , input = genCode input
-          , checkedHorizon = h
-          }
-    , genAnalysis = \final ct -> GenAnalysis
-        { minReads = 0 <$ minReads (genAnalysis k final ct)
-        , mayRaise = mayRaise (genAnalysis k final ct)
-        }
+          , input
+          , checkedHorizon
+          })
+        ||]
+    , genAnalysis = \final ->
+        let analysis = genAnalysis k final in
+        -- The input is reset and thus any previous 'checkHorizon'
+        -- cannot check after this 'loadInput'.
+        analysis{minReads = 0}
     }
 instance InstrCallable Gen where
   defLet defs k = k
@@ -468,113 +517,146 @@
             {-trace "unGen.defLet.body" $-}
             unGen k ctx
           return $ TH.LetE (
-            -- | Try to output more deterministic code to be able to golden test it,
-            -- at the cost of more computations (at compile-time only though).
+            -- | Use 'List.sortBy' to output more deterministic code
+            -- to be able to golden test it, at the cost of more computations
+            -- (at compile-time only though).
             List.sortBy (compare `on` TH.hideName) $
             toList decls
             ) body
     , genAnalysisByLet =
-        foldMap' (\(SomeLet sub) -> genAnalysisByLet sub) defs <>
-        ((\(SomeLet sub) -> genAnalysis sub) <$> defs) <>
-        genAnalysisByLet k
+        HM.unions
+          $ genAnalysisByLet k
+          : ((\(SomeLet sub) -> genAnalysis sub) <$> defs)
+          : ((\(SomeLet sub) -> genAnalysisByLet sub) <$> HM.elems defs)
     }
     where
-    makeDecl ctx (n, SomeLet sub) = do
-      body <- TH.unTypeQ $ TH.examineCode $ [|| -- buildRec in Parsley
+    makeDecl ctx (subName, SomeLet sub) = do
+      let subAnalysis = analysisByLet ctx HM.! subName
+      body <- takeFreeRegs (freeRegs subAnalysis) $
+        TH.unTypeQ $ TH.examineCode $ [|| -- buildRec in Parsley
         -- Called by 'call' or 'jump'.
-        \ !ok{-from generateSuspend or retCode-}
-          !inp
-          !koByLabel{- 'catchStackByLabel' from the 'call'-site -} ->
-          $$({-trace ("unGen.defLet.sub: "<>show n) $-} unGen sub ctx
+        \ !callerOnReturn{-from onReturnCode-}
+          !callerInput
+          !callerOnExceptionStackByLabel{- 'onExceptionStackByLabel' from the 'call'-site -} ->
+          $$({-trace ("unGen.defLet.sub: "<>show subName) $-} unGen sub ctx
             { valueStack = ValueStackEmpty
-            -- Build a 'catchStackByLabel' from the one available at the 'call'-site.
-            -- Note that all the 'mayRaise' of the 'sub'routine may not be available,
-            -- hence 'Map.findWithDefault' is used instead of 'Map.!'.
-            , catchStackByLabel = Map.mapWithKey
-                (\lbl () -> NE.singleton [||Map.findWithDefault $$(defaultCatch ctx) lbl koByLabel||])
-                ({-trace ("mayRaise: "<>show n) $-}
-                  mayRaise (finalGenAnalysisByLet ctx HM.! n))
-            , input = [||inp||]
-            , retCode = {-trace ("unGen.defLet.sub.retCode: "<>show n) $-} [||ok||]
+            -- Build a 'onExceptionStackByLabel' for the 'mayRaise' of the subroutine,
+            -- where each 'OnException' calls the one passed by the 'call'-site (in 'callerOnExceptionStackByLabel').
+            -- Note that currently the 'call'-site can supply in 'callerOnExceptionStackByLabel'
+            -- a subset of the 'mayRaise' needed by this subroutine,
+            -- because 'Map.findWithDefault' is used instead of 'Map.!'.
+            , onExceptionStackByLabel = Map.mapWithKey
+                (\lbl () -> NE.singleton [||Map.findWithDefault $$(defaultCatch ctx) lbl callerOnExceptionStackByLabel||])
+                ({-trace ("mayRaise: "<>show subName) $-}
+                  mayRaise subAnalysis)
+            , input = [||callerInput||]
+            , onReturn = {-trace ("unGen.defLet.sub.onReturn: "<>show subName) $-} [||callerOnReturn||]
 
-            -- These are passed by the caller via 'ok' or 'ko'
+            -- These are passed by the caller via 'callerOnReturn' or 'ko'
             -- , farthestInput = 
             -- , farthestExpecting = 
 
-            -- Some callers can call this 'defLet'
+            -- Some callers can call this declaration
             -- with zero 'checkedHorizon', hence use this minimum.
             -- TODO: maybe it could be improved a bit
             -- by taking the minimum of the checked horizons
-            -- before all the 'call's and 'jump's to this 'defLet'.
+            -- before all the 'call's and 'jump's to this declaration.
             , checkedHorizon = 0
             })
         ||]
-      let decl = TH.FunD n [TH.Clause [] (TH.NormalB body) []]
+      let decl = TH.FunD subName [TH.Clause [] (TH.NormalB body) []]
       return decl
-  jump (LetName n) = Gen
+  jump isRec (LetName subName) = Gen
     { genAnalysisByLet = HM.empty
-    , genAnalysis = \final ct ->
-        if n`List.elem`ct
+    , genAnalysis = \final ->
+        if isRec
         then GenAnalysis
-          { minReads = Right 0
+          { minReads = 0
           , mayRaise = Map.empty
+          , alwaysRaise = Set.empty
+          , freeRegs = Set.empty
           }
-        else (final HM.! n) (n:ct)
-    , unGen = \ctx -> {-trace ("unGen.jump: "<>show n) $-} [||
+        else final HM.! subName
+    , unGen = \ctx -> {-trace ("unGen.jump: "<>show subName) $-}
+      let subAnalysis = analysisByLet ctx HM.! subName in
+      [||
       let _ = "jump" in
-      $$(TH.unsafeCodeCoerce (return (TH.VarE n)))
-        {-ok-}$$(retCode ctx)
+      $$(TH.unsafeCodeCoerce $
+        giveFreeRegs (freeRegs subAnalysis) $
+        return (TH.VarE subName))
+        {-ok-}$$(onReturn ctx)
         $$(input ctx)
         $$(liftTypedRaiseByLabel $
-          catchStackByLabel ctx
+          onExceptionStackByLabel ctx
           -- Pass only the labels raised by the 'defLet'.
           `Map.intersection`
-          (mayRaise $ finalGenAnalysisByLet ctx HM.! n)
+          (mayRaise subAnalysis)
         )
       ||]
     }
-  call (LetName n) k = k
-    { genAnalysis = \final ct ->
-        if n`List.elem`ct
+  call isRec (LetName subName) k = k
+    { genAnalysis = \final ->
+        if isRec
         then GenAnalysis
-          { minReads = Right 0
+          { minReads = 0
           , mayRaise = Map.empty
+          , alwaysRaise = Set.empty
+          , freeRegs = Set.empty
           }
-        else seqGenAnalysis $
-          (final HM.! n) (n:ct) :|
-          [ genAnalysis k final ct ]
-    , unGen = {-trace ("unGen.call: "<>show n) $-} \ctx ->
-      -- let ks = (Map.keys (catchStackByLabel ctx)) in
+        else seqGenAnalysis $ (final HM.! subName) :| [ genAnalysis k final ]
+    , unGen = {-trace ("unGen.call: "<>show subName) $-} \ctx ->
+      -- let ks = (Map.keys (onExceptionStackByLabel ctx)) in
+      let subAnalysis = analysisByLet ctx HM.! subName in
       [||
-      -- let _ = $$(liftTypedString $ "call exceptByLet("<>show n<>")="<>show (Map.keys (Map.findWithDefault Map.empty n (exceptByLet ctx))) <> " catchStackByLabel(ctx)="<> show ks) in
-      $$(TH.unsafeCodeCoerce (return (TH.VarE n)))
-        {-ok-}$$(generateSuspend k ctx{callStack = n : callStack ctx})
+      -- let _ = $$(liftTypedString $ "call exceptByLet("<>show subName<>")="<>show (Map.keys (Map.findWithDefault Map.empty subName (exceptByLet ctx))) <> " onExceptionStackByLabel(ctx)="<> show ks) in
+      $$(TH.unsafeCodeCoerce $
+        giveFreeRegs (freeRegs subAnalysis) $
+        return (TH.VarE subName))
+        {-ok-}$$(onReturnCode k ctx)
         $$(input ctx)
         $$(liftTypedRaiseByLabel $
-          catchStackByLabel ctx
+          -- FIXME: maybe it should rather pass all the 'mayRaise' of 'subName'
+          -- and 'defaultCatch' be removed from 'makeDecl''s 'onExceptionStackByLabel'.
+          onExceptionStackByLabel ctx
           -- Pass only the labels raised by the 'defLet'.
           `Map.intersection`
-          (mayRaise $ finalGenAnalysisByLet ctx HM.! n)
+          (mayRaise subAnalysis)
         )
       ||]
     }
   ret = Gen
     { genAnalysisByLet = HM.empty
-    , genAnalysis = \_final _ct -> GenAnalysis
-        { minReads = Right 0
+    , genAnalysis = \_final -> GenAnalysis
+        { minReads = 0
         , mayRaise = Map.empty
+        , alwaysRaise = Set.empty
+        , freeRegs = Set.empty
         }
-    , unGen = \ctx -> {-trace "unGen.ret" $-} unGen ({-trace "unGen.ret.generateResume" $-} generateResume ({-trace "unGen.ret.retCode" $-} retCode ctx)) ctx
+    , unGen = \ctx -> {-trace "unGen.ret" $-}
+      {-trace "unGen.ret.returnCode" $-}
+      returnCode ({-trace "unGen.ret.onReturn" $-} onReturn ctx) ctx
     }
 
+takeFreeRegs :: TH.Quote m => Set TH.Name -> m TH.Exp -> m TH.Exp
+takeFreeRegs frs k = go (Set.toList frs)
+  where
+  go [] = k
+  go (r:rs) = [| \ $(return (TH.VarP r)) -> $(go rs) |]
+
+giveFreeRegs :: TH.Quote m => Set TH.Name -> m TH.Exp -> m TH.Exp
+giveFreeRegs frs k = go (Set.toList frs)
+  where
+  go [] = k
+  go (r:rs) = [| $(go rs) $(return (TH.VarE r)) |]
+
 -- | Like 'TH.liftString' but on 'TH.Code'.
 -- Useful to get a 'TH.StringL' instead of a 'TH.ListE'.
 liftTypedString :: String -> TH.Code TH.Q a
 liftTypedString = TH.unsafeCodeCoerce . TH.liftString
 
--- | Like 'TH.liftTyped' but adjusted to work on 'catchStackByLabel'
+-- | Like 'TH.liftTyped' but adjusted to work on 'onExceptionStackByLabel'
 -- which already contains 'CodeQ' terms.
--- Moreover, only the 'Catcher' at the top of the stack
+-- Moreover, only the 'OnException' at the top of the stack
 -- is needed and thus generated in the resulting 'CodeQ'.
 --
 -- TODO: Use an 'Array' instead of a 'Map'?
@@ -587,26 +669,27 @@
   liftTyped Set_.Tip = [|| Set_.Tip ||]
   liftTyped (Set_.Bin s a l r) = [|| Set_.Bin $$(TH.liftTyped s) $$(TH.liftTyped a) $$(TH.liftTyped l) $$(TH.liftTyped r) ||]
 
--- ** Type 'Cont'
-type Cont inp v a =
+-- ** Type 'OnReturn'
+-- | A continuation generated by 'onReturnCode' and later called by 'returnCode'.
+type OnReturn st inp v a =
   {-farthestInput-}Cursor inp ->
-  {-farthestExpecting-}(Set SomeFailure) ->
+  {-farthestExpecting-}Set SomeFailure ->
   v ->
   Cursor inp ->
-  Either (ParsingError inp) a
+  ST st (Either (ParsingError inp) a)
 
--- | Generate a 'retCode' 'Cont'inuation to be called with 'generateResume'.
+-- | Generate an 'OnReturn' continuation to be called with 'returnCode'.
 -- Used when 'call' 'ret'urns.
 -- The return 'v'alue is 'pushValue'-ed on the 'valueStack'.
-generateSuspend ::
+onReturnCode ::
   {-k-}Gen inp (v ': vs) a ->
-  GenCtx inp vs a ->
-  CodeQ (Cont inp v a)
-generateSuspend k ctx = [||
-  let _ = $$(liftTypedString $ "suspend") in
+  GenCtx st inp vs a ->
+  CodeQ (OnReturn st inp v a)
+onReturnCode k ctx = [||
+  let _ = $$(liftTypedString $ "onReturn") in
   \farInp farExp v !inp ->
-    $$({-trace "unGen.generateSuspend" $-} unGen k ctx
-      { valueStack = ValueStackCons ({-trace "unGen.generateSuspend.value" $-} splice [||v||]) (valueStack ctx)
+    $$({-trace "unGen.onReturnCode" $-} unGen k ctx
+      { valueStack = ValueStackCons ({-trace "unGen.onReturnCode.value" $-} splice [||v||]) (valueStack ctx)
       , input = [||inp||]
       , farthestInput = [||farInp||]
       , farthestExpecting = [||farExp||]
@@ -615,61 +698,85 @@
     )
   ||]
 
--- | Generate a call to the 'generateSuspend' continuation.
+-- | Generate a call to the 'onReturnCode' continuation.
 -- Used when 'call' 'ret'urns.
-generateResume ::
-  CodeQ (Cont inp v a) ->
-  Gen inp (v ': vs) a
-generateResume k = Gen
-  { genAnalysisByLet = HM.empty
-  , genAnalysis = \_final _ct -> GenAnalysis
-      { minReads = Right 0
-      , mayRaise = Map.empty
-      }
-  , unGen = \ctx -> {-trace "unGen.generateResume" $-} [||
-    let _ = "resume" in
-    $$k
-      $$(farthestInput ctx)
-      $$(farthestExpecting ctx)
-      (let _ = "resume.genCode" in $$({-trace "unGen.generateResume.genCode" $-}
-        genCode $ valueStackHead $ valueStack ctx))
-      $$(input ctx)
-    ||]
-  }
+returnCode ::
+  CodeQ (OnReturn st inp v a) ->
+  GenCtx st inp (v ': vs) a ->
+  CodeQ (ST st (Either (ParsingError inp) a))
+returnCode k = \ctx -> {-trace "returnCode" $-} [||
+  let _ = "resume" in
+  $$k
+    $$(farthestInput ctx)
+    $$(farthestExpecting ctx)
+    (let _ = "resume.genCode" in $$({-trace "returnCode.genCode" $-}
+      genCode $ valueStackHead $ valueStack ctx))
+    $$(input ctx)
+  ||]
 
--- ** Type 'Catcher'
-type Catcher inp a =
+-- ** Type 'OnException'
+-- | A continuation generated by 'catch' and later called by 'raise' or 'fail'.
+type OnException st inp a =
   Exception ->
   {-failInp-}Cursor inp ->
   {-farInp-}Cursor inp ->
-  {-farExp-}(Set SomeFailure) ->
-  Either (ParsingError inp) a
+  {-farExp-}Set SomeFailure ->
+  ST st (Either (ParsingError inp) a)
 
+-- TODO: some static infos should be attached to 'OnException'
+-- to avoid comparing inputs when they're the same
+-- and to improve 'checkedHorizon'.
+onExceptionCode ::
+  CodeQ (Cursor inp) -> Horizon ->
+  Gen inp (Cursor inp : vs) a ->
+  GenCtx st inp vs a -> TH.CodeQ (OnException st inp a)
+onExceptionCode resetInput resetCheckedHorizon k ctx = [||
+  let _ = $$(liftTypedString $ "onException") in
+  \ !_exn !failInp !farInp !farExp ->
+    $$(unGen k ctx
+      -- Push 'input' and 'checkedHorizon'
+      -- as they were when entering the 'catch' or 'iter',
+      -- they will be available to 'loadInput', if any.
+      { valueStack = inputSave resetInput resetCheckedHorizon
+                     `ValueStackCons` valueStack ctx
+      -- Note that 'onExceptionStackByLabel' is reset.
+      -- Move the input to the failing position.
+      , input = [||failInp||]
+      -- The 'checkedHorizon' at the 'raise's are not known here.
+      -- Nor whether 'failInp' is after 'checkedHorizon' or not.
+      -- Hence fallback to a safe value.
+      , checkedHorizon = 0
+      -- Set those to the farthest error computed in 'raiseFailure'.
+      , farthestInput = [||farInp||]
+      , farthestExpecting = [||farExp||]
+      })
+  ||]
+
 instance InstrJoinable Gen where
   defJoin (LetName n) sub k = k
-    { unGen =
-        \ctx ->
+    { unGen = \ctx ->
         {-trace ("unGen.defJoin: "<>show n) $-}
-        TH.unsafeCodeCoerce $ do
-          next <- TH.unTypeQ $ TH.examineCode $ [||
-            -- Called by 'generateResume'.
-            \farInp farExp v !inp ->
-              $$({-trace ("unGen.defJoin.next: "<>show n) $-} unGen sub ctx
-                { valueStack = ValueStackCons (splice [||v||]) (valueStack ctx)
-                , input = [||inp||]
-                , farthestInput = [||farInp||]
-                , farthestExpecting = [||farExp||]
-                , checkedHorizon = 0
-                {- FIXME:
-                , catchStackByLabel = Map.mapWithKey
-                    (\lbl () -> NE.singleton [||koByLabel Map.! lbl||])
-                    (mayRaise sub raiseLabelsByLetButSub)
-                -}
-                })
-            ||]
-          let decl = TH.FunD n [TH.Clause [] (TH.NormalB next) []]
-          expr <- TH.unTypeQ (TH.examineCode ({-trace ("unGen.defJoin.expr: "<>show n) $-} unGen k ctx))
-          return (TH.LetE [decl] expr)
+        TH.unsafeCodeCoerce [|
+          let $(return (TH.VarP n)) = $(TH.unTypeQ $ TH.examineCode [||
+                -- Called by 'returnCode'.
+                \farInp farExp v !inp ->
+                  $$({-trace ("unGen.defJoin.next: "<>show n) $-} unGen sub ctx
+                    { valueStack = ValueStackCons (splice [||v||]) (valueStack ctx)
+                    , input = [||inp||]
+                    , farthestInput = [||farInp||]
+                    , farthestExpecting = [||farExp||]
+                    , checkedHorizon = 0
+                    {- FIXME:
+                    , onExceptionStackByLabel = Map.mapWithKey
+                        (\lbl () -> NE.singleton [||koByLabel Map.! lbl||])
+                        (mayRaise sub raiseLabelsByLetButSub)
+                    -}
+                    })
+                ||])
+          in $(TH.unTypeQ $ TH.examineCode $
+            {-trace ("unGen.defJoin.expr: "<>show n) $-}
+            unGen k ctx)
+        |]
     , genAnalysisByLet =
         (genAnalysisByLet sub <>) $
         HM.insert n (genAnalysis sub) $
@@ -678,23 +785,96 @@
   refJoin (LetName n) = Gen
     { unGen = \ctx ->
         {-trace ("unGen.refJoin: "<>show n) $-}
-        unGen (generateResume
-          (TH.unsafeCodeCoerce (return (TH.VarE n)))) ctx
+        returnCode
+          (TH.unsafeCodeCoerce (return (TH.VarE n))) ctx
     , genAnalysisByLet = HM.empty
-    , genAnalysis = \final ct ->
-        if n`List.elem`ct -- FIXME: useless
-        then GenAnalysis
-          { minReads = Right 0
-          , mayRaise = Map.empty
-          }
-        else HM.findWithDefault
-          (error (show (n,ct,HM.keys final)))
-          n final (n:ct)
+    , genAnalysis = \final ->
+        HM.findWithDefault
+          (error (show (n,HM.keys final)))
+          n final
     }
 instance InstrReadable Char Gen where
   read fs p = checkHorizon . checkToken fs p
 instance InstrReadable Word8 Gen where
   read fs p = checkHorizon . checkToken fs p
+instance InstrIterable Gen where
+  iter (LetName loopJump) loop done = Gen
+    { genAnalysisByLet = HM.unions
+        [ -- No need to give 'freeRegs' when 'call'ing 'loopJump'
+          -- because they're passed when 'call'ing 'iter'.
+          -- This avoids to passing those registers around.
+          HM.singleton loopJump (\final -> (genAnalysis loop final){freeRegs = Set.empty})
+        , genAnalysisByLet loop
+        , genAnalysisByLet done
+        ]
+    , genAnalysis = \final ->
+      let loopAnalysis = genAnalysis loop final in
+      let doneAnalysis = genAnalysis done final in
+      GenAnalysis
+        { minReads = minReads doneAnalysis
+        , mayRaise =
+            Map.delete ExceptionFailure (mayRaise loopAnalysis) <>
+            mayRaise doneAnalysis
+        , alwaysRaise =
+            Set.delete ExceptionFailure (alwaysRaise loopAnalysis) <>
+            alwaysRaise doneAnalysis
+        , freeRegs = freeRegs loopAnalysis <> freeRegs doneAnalysis
+        }
+    , unGen = \ctx -> TH.unsafeCodeCoerce [|
+        let _ = "iter" in
+        let
+          onException loopInput = $(TH.unTypeCode $ onExceptionCode
+            (TH.unsafeCodeCoerce [|loopInput|]) 0 done ctx)
+          $(return $ TH.VarP loopJump) = \_callerOnReturn callerInput callerOnExceptionStackByLabel ->
+            $(TH.unTypeCode $ unGen loop ctx
+              { valueStack = ValueStackEmpty
+              , onExceptionStackByLabel =
+                  Map.insertWith (<>) ExceptionFailure
+                    (NE.singleton $ TH.unsafeCodeCoerce [|onException callerInput|])
+                    (onExceptionStackByLabel ctx)
+              , input = TH.unsafeCodeCoerce [|callerInput|]
+              -- FIXME: promote to compile time error?
+              , onReturn = TH.unsafeCodeCoerce [|error "invalid onReturn"|]
+              , checkedHorizon = 0
+              })
+        in $(TH.unTypeCode $ unGen (jump True (LetName loopJump)) ctx{valueStack=ValueStackEmpty})
+       |]
+    }
+instance InstrRegisterable Gen where
+  newRegister (UnscopedRegister r) k = k
+    { genAnalysis = \final ->
+      let analysis = genAnalysis k final in
+      analysis{freeRegs = Set.delete r $ freeRegs analysis}
+    , unGen = \ctx ->
+      let ValueStackCons v vs = valueStack ctx in
+      TH.unsafeCodeCoerce [|
+      do
+        let dupv = $(TH.unTypeCode $ genCode v)
+        $(return (TH.VarP r)) <- ST.newSTRef dupv
+        $(TH.unTypeCode $ unGen k ctx{valueStack=vs})
+      |]
+    }
+  readRegister (UnscopedRegister r) k = k
+    { genAnalysis = \final ->
+      let analysis = genAnalysis k final in
+      analysis{freeRegs = Set.insert r $ freeRegs analysis}
+    , unGen = \ctx -> [|| do
+        sr <- ST.readSTRef $$(TH.unsafeCodeCoerce (return (TH.VarE r)))
+        $$(unGen k ctx{valueStack=ValueStackCons (splice [||sr||]) (valueStack ctx)})
+      ||]
+    }
+  writeRegister (UnscopedRegister r) k = k
+    { genAnalysis = \final ->
+      let analysis = genAnalysis k final in
+      analysis{freeRegs = Set.insert r $ freeRegs analysis}
+    , unGen = \ctx ->
+      let ValueStackCons v vs = valueStack ctx in
+      [|| do
+        let dupv = $$(genCode v)
+        ST.writeSTRef $$(TH.unsafeCodeCoerce (return (TH.VarE r))) dupv
+        $$(unGen k ctx{valueStack=vs})
+      ||]
+    }
 
 checkHorizon ::
   forall inp vs a.
@@ -708,38 +888,58 @@
   {-ok-}Gen inp vs a ->
   Gen inp vs a
 checkHorizon ok = ok
-  { genAnalysis = \final ct -> seqGenAnalysis $
-      GenAnalysis { minReads = Right 1
+  { genAnalysis = \final -> seqGenAnalysis $
+      GenAnalysis { minReads = 0
                   , mayRaise = Map.singleton ExceptionFailure ()
+                  , alwaysRaise = Set.empty
+                  , freeRegs = Set.empty
                   } :|
-      [ genAnalysis ok final ct ]
+      [ genAnalysis ok final ]
   , unGen = \ctx0@GenCtx{} ->
-    {-trace "unGen.checkHorizon" $-}
-    let raiseFail = raiseException ctx0 ExceptionFailure in
-    [||
-      -- Factorize generated code for raising the "fail".
-      let readFail = $$(raiseFail) in
-      $$(
-        let ctx = ctx0{catchStackByLabel =
-                    Map.adjust (\(_r:|rs) -> [||readFail||] :| rs)
-                      ExceptionFailure (catchStackByLabel ctx0)} in
-        if checkedHorizon ctx >= 1
-        then unGen ok ctx0{checkedHorizon = checkedHorizon ctx - 1}
-        else let minHoriz =
-                    either (\_err -> 0) id $
-                    minReads $ finalGenAnalysis ctx ok in
-          [||
-          if $$(moreInput ctx)
-               $$(if minHoriz > 0
-                 then [||$$shiftRight minHoriz $$(input ctx)||]
-                 else input ctx)
-          then $$(unGen ok ctx{checkedHorizon = minHoriz})
-          else let _ = "checkHorizon.else" in
-            -- TODO: return a resuming continuation (eg. Partial)
-            $$(unGen (fail (Set.singleton $ SomeFailure $ FailureHorizon @(InputToken inp) (minHoriz + 1))) ctx)
-          ||]
-      )
-    ||]
+    if checkedHorizon ctx0 >= 1
+    then
+      [||
+        let _ = $$(liftTypedString $ "checkHorizon.oldCheck: checkedHorizon="<>show (checkedHorizon ctx0)) in
+        $$(unGen ok ctx0{checkedHorizon = checkedHorizon ctx0 - 1})
+      ||]
+    else
+      let minHoriz = minReads $ genAnalysis ok $ analysisByLet ctx0 in
+      if minHoriz == 0
+      then
+        [||
+          let _ = "checkHorizon.noCheck" in
+          $$(unGen ok ctx0)
+        ||]
+      else
+        [||
+          let inp = $$(input ctx0) in
+          --let partialCont inp =
+                -- Factorize generated code for raising the "fail".
+                let readFail = $$(raiseException ctx0{input=[||inp||]} ExceptionFailure) in
+                $$(
+                  let ctx = ctx0
+                        { onExceptionStackByLabel =
+                            Map.adjust (\(_r:|rs) -> [||readFail||] :| rs)
+                              ExceptionFailure (onExceptionStackByLabel ctx0)
+                        , input = [||inp||]
+                        } in
+                  [||
+                    let _ = $$(liftTypedString $ "checkHorizon.newCheck: checkedHorizon="<>show (checkedHorizon ctx)<>" minHoriz="<>show minHoriz) in
+                    if $$(moreInput ctx)
+                         $$(if minHoriz > 1
+                           then [||$$shiftRight $$(TH.liftTyped (minHoriz - 1)) inp||]
+                           else [||inp||])
+                    then $$(unGen ok ctx{checkedHorizon = minHoriz})
+                    else
+                      let _ = $$(liftTypedString $ "checkHorizon.newCheck.fail") in
+                      -- TODO: return a resuming continuation (like attoparsec's Partial)
+                      -- This could be done with a Buffer for efficient backtracking:
+                      -- http://www.serpentine.com/blog/2014/05/31/attoparsec/
+                      $$(unGen (fail (Set.singleton $ SomeFailure $ FailureHorizon @(InputToken inp) minHoriz)) ctx)
+                  ||]
+                )
+          --in partialCont $$(input ctx0)
+        ||]
   }
 
 -- | @('raiseFailure' ctx fs)@ raises 'ExceptionFailure'
@@ -747,9 +947,9 @@
 -- according to the relative position of 'input' wrt. 'farthestInput'.
 raiseFailure ::
   Cursorable (Cursor inp) =>
-  GenCtx inp cs a ->
+  GenCtx st inp cs a ->
   TH.CodeQ (Set SomeFailure) ->
-  TH.CodeQ (Either (ParsingError inp) a)
+  TH.CodeQ (ST st (Either (ParsingError inp) a))
 raiseFailure ctx fs = [||
   let failExp = $$fs in
   let (# farInp, farExp #) =
@@ -762,22 +962,14 @@
     {-failInp-}$$(input ctx) farInp farExp
   ||]
 -- | @('raiseException' ctx exn)@ raises exception @(exn)@
--- using any entry in 'catchStackByLabel', or 'defaultCatch' if none.
+-- using any entry in 'onExceptionStackByLabel', or 'defaultCatch' if none.
 raiseException ::
-  GenCtx inp vs a -> Exception ->
-  CodeQ (Exception -> Cursor inp -> Cursor inp -> Set SomeFailure -> Either (ParsingError inp) a)
+  GenCtx st inp vs a -> Exception ->
+  CodeQ (Exception -> Cursor inp -> Cursor inp -> Set SomeFailure -> ST st (Either (ParsingError inp) a))
 raiseException ctx exn =
   NE.head $ Map.findWithDefault
     (NE.singleton (defaultCatch ctx))
-    exn (catchStackByLabel ctx)
-
-finalGenAnalysis :: GenCtx inp vs a -> Gen inp cs a -> GenAnalysis
-finalGenAnalysis ctx k =
-  --(\f -> f (error "callTrace")) $
-  (\f -> f (callStack ctx)) $
-  genAnalysis k $
-  ((\f _ct -> f) <$>) $
-  finalGenAnalysisByLet ctx
+    exn (onExceptionStackByLabel ctx)
 
 checkToken ::
   Set SomeFailure ->
@@ -785,7 +977,15 @@
   {-ok-}Gen inp (InputToken inp ': vs) a ->
   Gen inp vs a
 checkToken fs p ok = ok
-  { unGen = \ctx -> {-trace "unGen.read" $-} [||
+  { genAnalysis = \final -> seqGenAnalysis $
+      GenAnalysis { minReads = 1
+                  , mayRaise = Map.singleton ExceptionFailure ()
+                  , alwaysRaise = Set.empty
+                  , freeRegs = Set.empty
+                  } :|
+      [ genAnalysis ok final ]
+  , unGen = \ctx -> {-trace "unGen.read" $-} [||
+    let _ = "checkToken" in
     let !(# c, cs #) = $$(nextInput ctx) $$(input ctx) in
     $$(genCode $
       Prod.ifThenElse
@@ -795,7 +995,7 @@
           , input = [||cs||]
           })
         (splice [||
-          let _ = "checkToken.else" in
+          let _ = "checkToken.fail" in
           $$(unGen (fail fs) ctx)
         ||])
     )||]
diff --git a/src/Symantic/Parser/Machine/Input.hs b/src/Symantic/Parser/Machine/Input.hs
--- a/src/Symantic/Parser/Machine/Input.hs
+++ b/src/Symantic/Parser/Machine/Input.hs
@@ -2,6 +2,7 @@
 {-# LANGUAGE MagicHash #-}
 {-# LANGUAGE TemplateHaskell #-}
 {-# LANGUAGE UnboxedTuples #-}
+{-# LANGUAGE PolyKinds #-}
 module Symantic.Parser.Machine.Input where
 
 import Data.Array.Base (UArray(..), listArray)
@@ -21,7 +22,7 @@
 import Data.Text.Internal (Text(..))
 import Data.Text.Unsafe (iter, Iter(..), iter_, reverseIter_)
 import Text.Show (Show(..))
-import GHC.Exts (Int(..), Char(..), {-, RuntimeRep(..)-})
+import GHC.Exts (Int(..), Char(..) {-, RuntimeRep(..)-}, TYPE)
 import GHC.Word (Word8(..))
 import GHC.ForeignPtr (ForeignPtr(..), ForeignPtrContents)
 import GHC.Prim ({-Int#,-} Addr#, nullAddr#, indexWideCharArray#, {-indexWord16Array#,-} readWord8OffAddr#, word2Int#, chr#, touch#, realWorld#, plusAddr#, (+#))
@@ -146,7 +147,9 @@
 class Cursorable (Cursor inp) => Inputable inp where
   type Cursor inp :: Type
   type InputToken inp :: Type
-  cursorOf :: CodeQ inp -> CodeQ
+  cursorOf :: CodeQ inp -> CodeQ (CursorOps inp)
+
+type CursorOps (inp :: TYPE r) =
     (# {-init-} Cursor inp
     ,  {-more-} Cursor inp -> Bool
     ,  {-next-} Cursor inp -> (# InputToken inp, Cursor inp #)
diff --git a/src/Symantic/Parser/Machine/Instructions.hs b/src/Symantic/Parser/Machine/Instructions.hs
--- a/src/Symantic/Parser/Machine/Instructions.hs
+++ b/src/Symantic/Parser/Machine/Instructions.hs
@@ -13,12 +13,13 @@
 import Data.Kind (Type)
 import Data.Set (Set)
 import Text.Show (Show(..))
+import Data.String (String)
 import qualified Language.Haskell.TH as TH
 
 import Symantic.Parser.Grammar
 import Symantic.Parser.Machine.Input
-import qualified Symantic.Typed.Lang as Prod
-import qualified Symantic.Typed.Data as Sym
+import qualified Symantic.Lang as Prod
+import qualified Symantic.Data as Sym
 
 -- * Type 'Splice'
 type Splice = Sym.SomeData TH.CodeQ
@@ -38,6 +39,10 @@
   deriving Eq
   deriving newtype Show
 
+-- ** Class 'InstrComment'
+class InstrComment (repr::ReprInstr) where
+  comment :: String -> repr inp vs a -> repr inp vs a
+
 -- ** Class 'InstrValuable'
 class InstrValuable (repr::ReprInstr) where
   -- | @('pushValue' x k)@ pushes @(x)@ on the 'valueStack'
@@ -85,17 +90,18 @@
   -- to update the farthest error.
   fail :: Set SomeFailure -> repr inp vs a
   -- | @('commit' exn k)@ removes the 'Catcher'
-  -- from the 'catchStackByLabel' for the given 'Exception' @(exn)@,
+  -- from the 'onExceptionStackByLabel' for the given 'Exception' @(exn)@,
   -- and continues with the next 'Instr'uction @(k)@.
   commit :: Exception -> repr inp vs a -> repr inp vs a
   -- | @('catch' exn l r)@ tries the @(l)@ 'Instr'uction
   -- in a new failure scope such that if @(l)@ raises an exception within @(exn)@, it is caught,
-  -- then the input (and its 'Horizon') is pushed as it was before trying @(l)@ on the 'valueStack',
+  -- then the input (and its 'Horizon') is pushed
+  -- as it was before trying @(l)@ on the 'valueStack' (resp. on the 'horizonStack'),
   -- and the control flow goes on with the @(r)@ 'Instr'uction.
   catch ::
     Exception ->
     {-scope-}repr inp vs ret ->
-    {-catcher-}repr inp (Cursor inp ': vs) ret ->
+    {-onException-}repr inp (Cursor inp ': vs) ret ->
     repr inp vs ret
 
 -- ** Class 'InstrBranchable'
@@ -107,8 +113,7 @@
     repr inp (Either x y ': vs) r
   -- | @('choicesBranch' ps bs d)@.
   choicesBranch ::
-    [Splice (v -> Bool)] ->
-    [repr inp vs a] ->
+    [(Splice (v -> Bool), repr inp vs a)] ->
     repr inp vs a ->
     repr inp (v ': vs) a
   -- | @('ifBranch' ok ko)@ pops a 'Bool' from the 'valueStack'
@@ -118,7 +123,7 @@
     repr inp vs a ->
     repr inp vs a ->
     repr inp (Bool ': vs) a
-  ifBranch ok ko = choicesBranch [Prod.id] [ok] ko
+  ifBranch ok ko = choicesBranch [(Prod.id, ok)] ko
 
 -- ** Class 'InstrCallable'
 class InstrCallable (repr::ReprInstr) where
@@ -129,16 +134,18 @@
     LetBindings TH.Name (repr inp '[]) ->
     repr inp vs a ->
     repr inp vs a
-  -- | @('call' n k)@ pass the control-flow to the 'DefLet' named @(n)@,
+  -- | @('call' isRec n k)@ pass the control-flow to the 'DefLet' named @(n)@,
   -- and when it 'Ret'urns, continues with the next 'Instr'uction @(k)@.
   call ::
+    Bool ->
     LetName v -> repr inp (v ': vs) a ->
     repr inp vs a
   -- | @('ret')@ returns the value stored in a singleton 'valueStack'.
   ret ::
     repr inp '[a] a
-  -- | @('jump' n k)@ pass the control-flow to the 'DefLet' named @(n)@.
+  -- | @('jump' isRec n k)@ pass the control-flow to the 'DefLet' named @(n)@.
   jump ::
+    Bool ->
     LetName a ->
     repr inp '[] a
 
@@ -154,12 +161,12 @@
 
 -- ** Class 'InstrInputable'
 class InstrInputable (repr::ReprInstr) where
-  -- | @('pushInput' k)@ pushes the input @(inp)@ on the 'valueStack'
+  -- | @('saveInput' k)@ pushes the input @(inp)@ on the 'valueStackHead'
   -- and continues with the next 'Instr'uction @(k)@.
-  pushInput ::
+  saveInput ::
     repr inp (Cursor inp ': vs) a ->
     repr inp vs a
-  -- | @('loadInput' k)@ removes the input from the 'valueStack'
+  -- | @('loadInput' k)@ removes the input from the 'valueStackHead'
   -- and continues with the next 'Instr'uction @(k)@ using that input.
   loadInput ::
     repr inp vs a ->
@@ -176,3 +183,37 @@
     Splice (tok -> Bool) ->
     repr inp (tok ': vs) a ->
     repr inp vs a
+
+-- ** Class 'InstrIterable'
+class InstrIterable (repr::ReprInstr) where
+  -- | @('iter' loop done)@.
+  iter ::
+    LetName a ->
+    repr inp '[] a ->
+    repr inp (Cursor inp ': vs) a ->
+    repr inp vs a
+
+-- ** Class 'InstrRegisterable'
+class InstrRegisterable (repr::ReprInstr) where
+  newRegister ::
+    UnscopedRegister v ->
+    repr inp vs a ->
+    repr inp (v : vs) a
+  readRegister ::
+    UnscopedRegister v ->
+    repr inp (v : vs) a ->
+    repr inp vs a
+  writeRegister ::
+    UnscopedRegister v ->
+    repr inp vs a ->
+    repr inp (v : vs) a
+
+-- | @('modifyRegister' reg k)@
+-- modifies the content of register @(reg)@
+-- with the function at the 'valueStackHead',
+-- then continues with @(k)@.
+modifyRegister ::
+  InstrRegisterable repr =>
+  InstrValuable repr =>
+  UnscopedRegister v -> repr inp vs a -> repr inp ((v -> v) : vs) a
+modifyRegister r = readRegister r . applyValue . writeRegister r
diff --git a/src/Symantic/Parser/Machine/Optimize.hs b/src/Symantic/Parser/Machine/Optimize.hs
--- a/src/Symantic/Parser/Machine/Optimize.hs
+++ b/src/Symantic/Parser/Machine/Optimize.hs
@@ -13,11 +13,12 @@
 import Data.Kind (Constraint)
 import Data.Maybe (Maybe(..))
 import Data.Set (Set)
+import Data.String (String)
 import Type.Reflection (Typeable, typeRep, eqTypeRep, (:~~:)(..))
 import qualified Data.Functor as Functor
 import qualified Language.Haskell.TH as TH
 
-import Symantic.Typed.Derive
+import Symantic.Derive
 import Symantic.Parser.Grammar
 import Symantic.Parser.Machine.Input
 import Symantic.Parser.Machine.Instructions
@@ -47,13 +48,12 @@
 -- As in 'SomeComb', a first pass of optimizations
 -- is directly applied in it
 -- to avoid introducing an extra newtype,
--- this also give a more undestandable code.
+-- this also gives a more undestandable code.
 data SomeInstr repr inp vs a =
   forall instr.
   ( Derivable (Instr instr repr inp vs)
   , Typeable instr
-  ) =>
-  SomeInstr (Instr instr repr inp vs a)
+  ) => SomeInstr (Instr instr repr inp vs a)
 
 type instance Derived (SomeInstr repr inp vs) = repr inp vs
 instance Derivable (SomeInstr repr inp vs) where
@@ -70,8 +70,23 @@
 unSomeInstr (SomeInstr (i::Instr i repr inp vs a)) =
   case typeRep @instr `eqTypeRep` typeRep @i of
     Just HRefl -> Just i
-    Nothing -> Nothing
+    Nothing ->
+      case typeRep @InstrComment `eqTypeRep` typeRep @i of
+        Just HRefl | Comment _msg x <- i -> unSomeInstr x
+        Nothing -> Nothing
 
+-- InstrComment
+data instance Instr InstrComment repr inp vs a where
+  Comment ::
+    String ->
+    SomeInstr repr inp vs a ->
+    Instr InstrComment repr inp vs a
+instance InstrComment repr => Derivable (Instr InstrComment repr inp vs) where
+  derive = \case
+    Comment msg k -> comment msg (derive k)
+instance InstrComment repr => InstrComment (SomeInstr repr) where
+  comment msg = SomeInstr . Comment msg
+
 -- InstrValuable
 data instance Instr InstrValuable repr inp vs a where
   PushValue ::
@@ -90,9 +105,9 @@
     Instr InstrValuable repr inp (y ': x ': vs) a
 instance InstrValuable repr => Derivable (Instr InstrValuable repr inp vs) where
   derive = \case
-    PushValue x k -> pushValue x (derive k)
+    PushValue v k -> pushValue v (derive k)
     PopValue k -> popValue (derive k)
-    Lift2Value f k -> lift2Value f (derive k)
+    Lift2Value v k -> lift2Value v (derive k)
     SwapValue k -> swapValue (derive k)
 instance InstrValuable repr => InstrValuable (SomeInstr repr) where
   -- 'PopValue' after a 'PushValue' is a no-op.
@@ -138,17 +153,16 @@
     SomeInstr repr inp (y ': vs) a ->
     Instr InstrBranchable repr inp (Either x y ': vs) a
   ChoicesBranch ::
-    [Splice (v -> Bool)] ->
-    [SomeInstr repr inp vs a] ->
+    [(Splice (v -> Bool), SomeInstr repr inp vs a)] ->
     SomeInstr repr inp vs a ->
     Instr InstrBranchable repr inp (v ': vs) a
 instance InstrBranchable repr => Derivable (Instr InstrBranchable repr inp vs) where
   derive = \case
     CaseBranch l r -> caseBranch (derive l) (derive r)
-    ChoicesBranch ps bs d -> choicesBranch ps (derive Functor.<$> bs) (derive d)
+    ChoicesBranch bs d -> choicesBranch ((\(p,b) -> (p, derive b)) Functor.<$> bs) (derive d)
 instance InstrBranchable repr => InstrBranchable (SomeInstr repr) where
   caseBranch l = SomeInstr . CaseBranch l
-  choicesBranch ps bs = SomeInstr . ChoicesBranch ps bs
+  choicesBranch bs = SomeInstr . ChoicesBranch bs
 
 -- InstrCallable
 data instance Instr InstrCallable repr inp vs a where
@@ -157,24 +171,26 @@
     SomeInstr repr inp vs a ->
     Instr InstrCallable repr inp vs a
   Call ::
+    Bool ->
     LetName v ->
     SomeInstr repr inp (v ': vs) a ->
     Instr InstrCallable repr inp vs a
   Ret ::
     Instr InstrCallable repr inp '[a] a
   Jump ::
+    Bool ->
     LetName a ->
     Instr InstrCallable repr inp '[] a
 instance InstrCallable repr => Derivable (Instr InstrCallable repr inp vs) where
   derive = \case
     DefLet subs k -> defLet ((\(SomeLet sub) -> SomeLet (derive sub)) Functor.<$> subs) (derive k)
-    Jump n -> jump n
-    Call n k -> call n (derive k)
+    Jump isRec n -> jump isRec n
+    Call isRec n k -> call isRec n (derive k)
     Ret -> ret
 instance InstrCallable repr => InstrCallable (SomeInstr repr) where
   defLet subs = SomeInstr . DefLet subs
-  jump = SomeInstr . Jump
-  call n = SomeInstr . Call n
+  jump isRec = SomeInstr . Jump isRec
+  call isRec n = SomeInstr . Call isRec n
   ret = SomeInstr Ret
 
 -- InstrJoinable
@@ -205,10 +221,10 @@
     Instr InstrInputable repr inp (Cursor inp ': vs) a
 instance InstrInputable repr => Derivable (Instr InstrInputable repr inp vs) where
   derive = \case
-    PushInput k -> pushInput (derive k)
+    PushInput k -> saveInput (derive k)
     LoadInput k -> loadInput (derive k)
 instance InstrInputable repr => InstrInputable (SomeInstr repr) where
-  pushInput = SomeInstr . PushInput
+  saveInput = SomeInstr . PushInput
   loadInput = SomeInstr . LoadInput
 
 -- InstrReadable
@@ -227,3 +243,48 @@
   ( InstrReadable tok repr, Typeable tok ) =>
   InstrReadable tok (SomeInstr repr) where
   read fs p = SomeInstr . Read fs p
+
+-- InstrIterable
+data instance Instr InstrIterable repr inp vs a where
+  Iter ::
+    LetName a ->
+    SomeInstr repr inp '[] a ->
+    SomeInstr repr inp (Cursor inp ': vs) a ->
+    Instr InstrIterable repr inp vs a
+instance
+  InstrIterable repr =>
+  Derivable (Instr InstrIterable repr inp vs) where
+  derive = \case
+    Iter n op k -> iter n (derive op) (derive k)
+instance
+  InstrIterable repr =>
+  InstrIterable (SomeInstr repr) where
+  iter n op = SomeInstr . Iter n op
+
+-- InstrRegisterable
+data instance Instr InstrRegisterable repr inp vs a where
+  NewRegister ::
+    UnscopedRegister v ->
+    SomeInstr repr inp vs a ->
+    Instr InstrRegisterable repr inp (v : vs) a
+  ReadRegister ::
+    UnscopedRegister v ->
+    SomeInstr repr inp (v : vs) a ->
+    Instr InstrRegisterable repr inp vs a
+  WriteRegister ::
+    UnscopedRegister v ->
+    SomeInstr repr inp vs a ->
+    Instr InstrRegisterable repr inp (v : vs) a
+instance
+  InstrRegisterable repr =>
+  Derivable (Instr InstrRegisterable repr inp vs) where
+  derive = \case
+    NewRegister r k -> newRegister r (derive k)
+    ReadRegister r k -> readRegister r (derive k)
+    WriteRegister r k -> writeRegister r (derive k)
+instance
+  InstrRegisterable repr =>
+  InstrRegisterable (SomeInstr repr) where
+  newRegister r = SomeInstr . NewRegister r
+  readRegister r = SomeInstr . ReadRegister r
+  writeRegister r = SomeInstr . WriteRegister r
diff --git a/src/Symantic/Parser/Machine/Program.hs b/src/Symantic/Parser/Machine/Program.hs
--- a/src/Symantic/Parser/Machine/Program.hs
+++ b/src/Symantic/Parser/Machine/Program.hs
@@ -1,32 +1,33 @@
 {-# LANGUAGE ConstraintKinds #-}
+{-# LANGUAGE TupleSections #-}
 {-# LANGUAGE UndecidableInstances #-} -- For Cursorable (Cursor inp)
 -- | Build the 'Instr'uction 'Program' of a 'Machine'
 -- from the 'Comb'inators of a 'Grammar'.
 -- 'Instr'uctions are kept introspectable
--- to enable more optimizations now possible because
+-- to enable more optimizations made possible now because
 -- of a broader knowledge of the 'Instr'uctions around
--- those generated (eg. by using 'joinNext').
+-- those generated (see for instance 'joinNext').
 module Symantic.Parser.Machine.Program where
 
-import Control.Monad (Monad(..), (<=<), (=<<), liftM, liftM2, sequence)
-import Data.Function (($))
-import System.IO (IO)
-import Type.Reflection (Typeable)
 import Control.DeepSeq (NFData)
+import Control.Monad (Monad(..), (<=<), (=<<), liftM, liftM2, sequence)
 import Data.Bool (Bool(..))
 import Data.Eq (Eq)
+import Data.Function (($))
 import Data.Function ((.))
 import Data.Ord (Ord)
+import Data.Semigroup (Semigroup(..))
+import System.IO (IO)
 import Text.Show (Show(..))
+import Type.Reflection (Typeable)
 import qualified Data.Functor as Functor
-import qualified Data.HashMap.Strict as HM
 import qualified Data.Set as Set
 import qualified Data.Traversable as Traversable
 import qualified Language.Haskell.TH as TH
 import qualified Language.Haskell.TH.Syntax as TH
-import qualified Symantic.Typed.Lang as Prod
+import qualified Symantic.Lang as Prod
 
-import Symantic.Typed.Derive
+import Symantic.Derive
 import Symantic.Parser.Grammar
 import Symantic.Parser.Machine.Input
 import Symantic.Parser.Machine.Instructions
@@ -39,10 +40,10 @@
 -- the next 'Instr'uction.
 data Program repr inp a = Program { unProgram ::
   forall vs ret.
-  -- This is the next instruction
+  -- This is the next instruction.
   SomeInstr repr inp (a ': vs) ret ->
   -- This is the current instruction
-  -- IO is needed for 'TH.newName' in 'joinNext'.
+  -- IO is needed for 'TH.newName'.
   IO (SomeInstr repr inp vs ret)
   }
 
@@ -58,12 +59,15 @@
 -- | All the 'Instr'uctions.
 type Machinable tok repr =
   ( InstrBranchable repr
+  , InstrComment repr
   , InstrExceptionable repr
   , InstrInputable repr
   , InstrJoinable repr
   , InstrCallable repr
   , InstrValuable repr
   , InstrReadable tok repr
+  , InstrIterable repr
+  , InstrRegisterable repr
   , Eq tok
   , Ord tok
   , TH.Lift tok
@@ -75,28 +79,7 @@
 instance
   ( Cursorable (Cursor inp)
   , InstrBranchable repr
-  , InstrExceptionable repr
-  , InstrInputable repr
-  , InstrJoinable repr
-  , InstrValuable repr
-  , InstrReadable (InputToken inp) repr
-  , Typeable (InputToken inp)
-  ) =>
-  Derivable (Comb CombAlternable (Program repr inp)) where
-  derive = \case
-    Alt ExceptionFailure
-      (Comb (SatisfyOrFail _fs p :: Comb (CombSatisfiable (InputToken inp)) (Program repr inp) a))
-      (Comb (Failure sf)) ->
-      satisfyOrFail (Set.singleton sf) p
-    Alt exn x y -> alt exn (derive x) (derive y)
-    Empty -> empty
-    Failure sf -> failure sf
-    Throw exn -> throw exn
-    Try x -> try (derive x)
-
-instance
-  ( Cursorable (Cursor inp)
-  , InstrBranchable repr
+  , InstrComment repr
   , InstrExceptionable repr
   , InstrInputable repr
   , InstrJoinable repr
@@ -105,32 +88,37 @@
   alt exn (Program l) (Program r) = joinNext $ Program $ \next ->
     liftM2 (catch exn)
       (l (commit exn next))
-      (failIfConsumed exn Functor.<$> r next)
+      (raiseAgainIfConsumed exn Functor.<$> r next)
   throw exn = Program $ \_next -> return $ raise exn
   failure flr = Program $ \_next -> return $ fail (Set.singleton flr)
   empty = Program $ \_next -> return $ fail (Set.singleton (SomeFailure FailureEmpty))
   try (Program x) = Program $ \next ->
     liftM2 (catch ExceptionFailure)
       (x (commit ExceptionFailure next))
-      -- On exception, reset the input, and propagate the failure.
+      -- On 'ExceptionFailure', reset the input, and propagate the failure.
       (return $ loadInput $ fail Set.empty)
 
--- | If no input has been consumed by the failing alternative
--- then continue with the given continuation.
--- Otherwise, propagate the failure.
-failIfConsumed ::
+-- | @(raiseAgainIfConsumed exn ok)@
+-- compares the stacked input position with the current one,
+-- in case they're the same then continue with @(ok)@,
+-- otherwise, re-'raise' @(exn)@,
+-- without updating the farthest error
+-- (which is usually done when 'fail'ing).
+raiseAgainIfConsumed ::
   Cursorable (Cursor inp) =>
   InstrBranchable repr =>
+  InstrComment repr =>
   InstrExceptionable repr =>
   InstrInputable repr =>
   InstrValuable repr =>
   Exception ->
   SomeInstr repr inp vs ret ->
   SomeInstr repr inp (Cursor inp ': vs) ret
-failIfConsumed exn k =
-  pushInput $
+raiseAgainIfConsumed exn ok =
+  comment "raiseAgainIfConsumed" $
+  saveInput $
   lift2Value (splice sameOffset) $
-  ifBranch k $
+  ifBranch ok $
     case exn of
       ExceptionLabel lbl -> raise lbl
       ExceptionFailure -> fail Set.empty
@@ -180,36 +168,62 @@
 instance
   ( Cursorable (Cursor inp)
   , InstrBranchable repr
+  , InstrCallable repr
+  , InstrComment repr
   , InstrExceptionable repr
   , InstrInputable repr
+  , InstrIterable repr
   , InstrJoinable repr
+  , InstrRegisterable repr
   , InstrValuable repr
   ) => CombFoldable (Program repr inp) where
-  {-
-  chainPre op p = go <*> p
-    where go = (Prod..) <$> op <*> go <|> pure Prod.id
-  chainPost p op = p <**> go
-    where go = (Prod..) <$> op <*> go <|> pure Prod.id
-  -}
+  chainPre (Program op) (Program done) =
+    new (pure Prod.id) $ \(Register r) -> Program $ \next -> do
+      !loopName <- TH.newName "loop"
+      liftM2 (iter (LetName loopName))
+        (op $
+          mapValue (Prod.flip Prod..@ (Prod..)) $
+          modifyRegister r $
+          jump True (LetName loopName) )
+        (raiseAgainIfConsumed ExceptionFailure .
+          readRegister r Functor.<$>
+          (done (applyValue next)))
+  chainPost (Program done) (Program op) =
+    new (pure Prod.id) $ \(Register r) -> Program $ \next -> do
+      !loopName <- TH.newName "loop"
+      liftM2 (iter (LetName loopName))
+        (op $
+          modifyRegister (UnscopedRegister (unUnscopedRegister r)) $
+          jump True (LetName loopName) )
+        (raiseAgainIfConsumed ExceptionFailure .
+          readRegister r Functor.<$>
+          (done (applyValue next)))
 instance
   InstrCallable repr =>
-  Letable TH.Name (Program repr inp) where
-  shareable n (Program sub) = Program $ \next -> do
-    sub' <- sub ret
-    return $ defLet (HM.singleton n (SomeLet sub')) (call (LetName n) next)
-  ref _isRec n = Program $ \case
+  Referenceable TH.Name (Program repr inp) where
+  -- TODO: isRec should be passed to 'call' and 'jump'
+  -- instead of redoing the work with 'CallTrace'.
+  ref isRec name = Program $ \case
     -- Tail Call Optimization:
     -- returning just after a 'call' is useless:
     -- using 'jump' lets the 'ret' of the 'defLet'
     -- directly return where it would in two 'ret's.
-    Instr Ret{} -> return $ jump (LetName n)
-    next -> return $ call (LetName n) next
+    Instr Ret{} -> return $ jump isRec (LetName name)
+    next -> return $ call isRec (LetName name) next
+  {-
+  refable n (Program sub) = Program $ \next -> do
+    sub' <- sub ret
+    return $ defLet (HM.singleton n (SomeLet sub')) (call (LetName n) next)
+  -}
 instance
   InstrCallable repr =>
   Letsable TH.Name (Program repr inp) where
-  lets defs (Program x) = Program $ \next -> do
-    defs' <- Traversable.traverse (\(SomeLet (Program val)) -> liftM SomeLet (val ret)) defs
-    liftM (defLet defs') (x next)
+  lets defs (Program body) = Program $ \next -> do
+    -- Every definition becomes a 'call'able subroutine.
+    defs' <- Traversable.traverse
+      (\(SomeLet (Program val)) -> liftM SomeLet (val ret))
+      defs
+    liftM (defLet defs') (body next)
 instance
   ( Eq (InputToken inp)
   , Cursorable (Cursor inp)
@@ -220,13 +234,18 @@
   , InstrReadable (InputToken inp) repr
   , Typeable (InputToken inp)
   , InstrValuable repr
+  , InstrComment repr
   ) => CombLookable (Program repr inp) where
   look (Program x) = Program $ \next ->
-    liftM pushInput (x (swapValue (loadInput next)))
-  eof = negLook (satisfy (Prod.const Prod..@ Prod.bool True))
-        -- This sets a better failure message
-        <|> (Program $ \_next -> return $ fail (Set.singleton (SomeFailure FailureEnd)))
+    liftM (comment "look") $
+    liftM saveInput (x (swapValue (loadInput next)))
+  eof =
+    negLook (satisfy (Prod.const Prod..@ Prod.bool True))
+      -- This sets a better failure message
+      <|> (Program $ \_next ->
+        return $ comment "eof.fail" $ fail (Set.singleton (SomeFailure FailureEnd)))
   negLook (Program x) = Program $ \next ->
+    liftM (comment "negLook") $
     liftM2 (catch ExceptionFailure)
       -- On x success, discard the result,
       -- and replace this 'Catcher' by a failure whose 'farthestExpecting' is negated,
@@ -239,27 +258,35 @@
       --   the grammar might be blamed on something in x
       --   that, if corrected, still makes x succeed
       --   and (negLook x) fail.
-      (liftM pushInput $ x $
+      (
+        liftM (comment "negLook.ahead") $
+        liftM saveInput $ x $
         popValue $ commit ExceptionFailure $
-          loadInput $ fail Set.empty)
+          loadInput $ fail Set.empty
+      )
       -- On x failure, reset the input,
       -- and go on with the next 'Instr'uctions.
-      (return $ loadInput $ pushValue Prod.unit next)
+      (
+        liftM (comment "negLook.reset") $
+        return $ loadInput $ pushValue Prod.unit next
+      )
 instance
   ( InstrBranchable repr
   , InstrJoinable repr
   ) => CombMatchable (Program repr inp) where
-  conditional (Program a) ps bs (Program d) = joinNext $ Program $ \next -> do
-    bs' <- Control.Monad.sequence $ (\(Program b) -> b next) Functor.<$> bs
-    a =<< liftM (choicesBranch (prodCode Functor.<$> ps) bs') (d next)
+  conditional (Program a) bs (Program d) = joinNext $ Program $ \next -> do
+    bs' <- Control.Monad.sequence $ (\(p, b) -> (prodCode p,) Functor.<$> unProgram b next) Functor.<$> bs
+    a =<< liftM (choicesBranch bs') (d next)
 instance
   ( tok ~ InputToken inp
   , InstrReadable tok repr
+  , InstrComment repr
   , Typeable tok
   ) => CombSatisfiable tok (Program repr inp) where
-  -- Note: 'read' is left with the responsability
-  -- to apply 'normalOrderReduction' if need be.
-  satisfyOrFail fs p = Program $ return . read fs (prodCode p)
+  satisfyOrFail fs p = Program $ \next ->
+    return $
+      comment ("satisfy "<>showsPrec 11 (prodCode p) "") $
+      read fs (prodCode p) next
 instance
   ( InstrBranchable repr
   , InstrJoinable repr
@@ -269,3 +296,24 @@
     lr =<< liftM2 caseBranch
       (l (swapValue (applyValue next)))
       (r (swapValue (applyValue next)))
+instance
+  ( InstrValuable repr
+  , InstrRegisterable repr
+  ) => CombRegisterable (Program repr inp) where
+  new (Program p) k = Program $ \next -> do
+    !regName <- TH.newName "reg"
+    p =<< liftM (newRegister (UnscopedRegister regName))
+      (unProgram (k (Register (UnscopedRegister regName))) next)
+  get (Register r) = Program $ \next ->
+    return $ readRegister r next
+  put (Register r) (Program k) = Program $ \next ->
+    k $ writeRegister r $ pushValue Prod.unit next
+instance
+  ( InstrValuable repr
+  , InstrRegisterable repr
+  ) => CombRegisterableUnscoped (Program repr inp) where
+  newUnscoped r (Program p) k = Program $ \next ->
+    p =<< liftM (newRegister r) (unProgram k next)
+  getUnscoped r = Program $ return . readRegister r
+  putUnscoped r (Program k) = Program $
+    k . writeRegister r . pushValue Prod.unit
diff --git a/src/Symantic/Parser/Machine/View.hs b/src/Symantic/Parser/Machine/View.hs
--- a/src/Symantic/Parser/Machine/View.hs
+++ b/src/Symantic/Parser/Machine/View.hs
@@ -1,5 +1,6 @@
+{-# LANGUAGE AllowAmbiguousTypes #-}
 {-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE UndecidableInstances #-} -- For ShowLetName
+{-# LANGUAGE UndecidableInstances #-} -- For HideableName
 module Symantic.Parser.Machine.View where
 
 import Data.Bool (Bool(..))
@@ -17,46 +18,51 @@
 import qualified Data.Map.Strict as Map
 import qualified Data.Set as Set
 import qualified Data.Tree as Tree
+import Language.Haskell.TH.HideName
 import qualified Language.Haskell.TH.Syntax as TH
 import Prelude (error)
 
-import Symantic.Parser.Grammar.ObserveSharing (ShowLetName(..))
+import Symantic.Optimize (normalOrderReduction)
+import Symantic.Parser.Grammar.Combinators (UnscopedRegister(..))
+import Symantic.Parser.Grammar.ObserveSharing
 import Symantic.Parser.Machine.Instructions
-import Symantic.Typed.ObserveSharing (SomeLet(..))
 import Symantic.Parser.Machine.Generate
 
 -- * Type 'ViewMachine'
 data ViewMachine (showName::Bool) inp (vs:: [Type]) a
   =  ViewMachine
   { viewGen :: Gen inp vs a
-    -- ^ Provide 'GenAnalysis', which next important for debugging
+    -- ^ Provide 'GenAnalysis', which is important for debugging
     -- and improving golden tests, see 'viewInstrCmd'.
   , unViewMachine ::
-      CallTrace ->
-      LetMap GenAnalysis -> -- Output of 'runGenAnalysis'.
+      LetRecs TH.Name GenAnalysis -> -- Output of 'mutualFix'.
       Tree.Forest (String, String) ->
       Tree.Forest (String, String)
   }
 
-viewMachine ::
-  ViewMachine sN inp vs a ->
-  ViewMachine sN inp vs a
+viewMachine :: ViewMachine sN inp vs a -> ViewMachine sN inp vs a
 viewMachine = id
 
+showSplice :: Splice a -> String
+showSplice p = showsPrec 10 (normalOrderReduction p) ""
+
 -- | Helper to view a command.
 viewInstrCmd ::
+  forall (sN::Bool) inp vs a.
+  HideableName sN =>
   Either TH.Name (Gen inp vs a) ->
-  CallTrace ->
-  LetMap GenAnalysis ->
+  LetRecs TH.Name GenAnalysis ->
   (String, String) -> Tree.Forest (String, String) -> Tree.Tree (String, String)
-viewInstrCmd gen ct lm (n, no) = Tree.Node $ (n
+viewInstrCmd gen finalByLet (cmd, no) = Tree.Node $ (cmd
   <> "\nminReads="<>showsPrec 11 (minReads ga) ""
-  <> "\nmayRaise="<>showsPrec 11 (Map.keys (mayRaise ga)) ""
+  <> "\nmayRaise="<>show (Map.keys (mayRaise ga))
+  <> "\nalwaysRaise="<>show (Set.toList (alwaysRaise ga))
+  <> "\nfreeRegs="<>show (hideableName @sN (Set.toList (freeRegs ga)))
   , no)
   where
   ga = case gen of
-         Right r -> (\f -> f ct) $ genAnalysis r $ (\f _ct -> f) <$> lm
-         Left l -> HM.findWithDefault (error (show (l, HM.keys lm))) l lm
+         Right a -> genAnalysis a finalByLet
+         Left n -> HM.findWithDefault (error (show (n, HM.keys finalByLet))) n finalByLet
 
 -- | Helper to view an argument.
 viewInstrArg :: String -> Tree.Forest (String, String) -> Tree.Tree (String, String)
@@ -64,7 +70,7 @@
 
 instance Show (ViewMachine sN inp vs a) where
   show vm = List.unlines $ drawTrees $
-      unViewMachine vm [] (runGenAnalysis (genAnalysisByLet (viewGen vm))) []
+      unViewMachine vm (mutualFix (genAnalysisByLet (viewGen vm))) []
     where
     draw :: Tree.Tree (String, String) -> [String]
     draw (Tree.Node (x, n) ts0) =
@@ -75,136 +81,189 @@
     drawTrees (t:ts) = draw t <> drawTrees ts
     shift ind0 ind = List.zipWith (<>) (ind0 : List.repeat ind)
 
-instance InstrValuable (ViewMachine sN) where
+instance
+  HideableName sN =>
+  InstrComment (ViewMachine sN) where
+  comment msg k = ViewMachine 
+    { unViewMachine = \lm next ->
+        viewInstrCmd @sN (Right gen) lm ("comment "<>show msg, "") [] :
+        unViewMachine k lm next
+    , viewGen = gen
+    } where gen = comment msg (viewGen k)
+instance
+  HideableName sN =>
+  InstrValuable (ViewMachine sN) where
   pushValue a k = ViewMachine
-    { unViewMachine = \ct lm next ->
-        viewInstrCmd (Right gen) ct lm ("pushValue "<>showsPrec 10 a "", "") [] :
-        unViewMachine k ct lm next
+    { unViewMachine = \lm next ->
+        viewInstrCmd @sN (Right gen) lm ("pushValue "<>showSplice a, "") [] :
+        unViewMachine k lm next
     , viewGen = gen
     } where gen = pushValue a (viewGen k)
   popValue k = ViewMachine
-    { unViewMachine = \ct lm next ->
-        viewInstrCmd (Right gen) ct lm ("popValue", "") [] :
-        unViewMachine k ct lm next
+    { unViewMachine = \lm next ->
+        viewInstrCmd @sN (Right gen) lm ("popValue", "") [] :
+        unViewMachine k lm next
     , viewGen = gen
     } where gen = popValue (viewGen k)
   lift2Value f k = ViewMachine
-    { unViewMachine = \ct lm next ->
-        viewInstrCmd (Right gen) ct lm ("lift2Value "<>showsPrec 10 f "", "") [] :
-        unViewMachine k ct lm next
+    { unViewMachine = \lm next ->
+        viewInstrCmd @sN (Right gen) lm ("lift2Value "<>showSplice f, "") [] :
+        unViewMachine k lm next
     , viewGen = gen
     } where gen = lift2Value f (viewGen k)
   swapValue k = ViewMachine
-    { unViewMachine = \ct lm next ->
-        viewInstrCmd (Right gen) ct lm ("swapValue", "") [] :
-        unViewMachine k ct lm next
+    { unViewMachine = \lm next ->
+        viewInstrCmd @sN (Right gen) lm ("swapValue", "") [] :
+        unViewMachine k lm next
     , viewGen = gen
     } where gen = swapValue (viewGen k)
-instance InstrExceptionable (ViewMachine sN) where
+instance
+  HideableName sN =>
+  InstrExceptionable (ViewMachine sN) where
   raise exn = ViewMachine
-    { unViewMachine = \ct lm next ->
-        viewInstrCmd (Right gen) ct lm ("raise "<>show exn, "") [] : next
+    { unViewMachine = \lm next ->
+        viewInstrCmd @sN (Right gen) lm ("raise "<>show exn, "") [] : next
     , viewGen = gen
     } where gen = raise exn
-  fail flr = ViewMachine
-    { unViewMachine = \ct lm next ->
-        viewInstrCmd (Right gen) ct lm ("fail "<>show (Set.toList flr), "") [] : next
+  fail fs = ViewMachine
+    { unViewMachine = \lm next ->
+        viewInstrCmd @sN (Right gen) lm ("fail "<>show (Set.toList fs), "") [] : next
     , viewGen = gen
-    } where gen = fail flr
+    } where gen = fail fs
   commit exn k = ViewMachine
-    { unViewMachine = \ct lm next ->
-        viewInstrCmd (Right gen) ct lm ("commit "<>show exn, "") [] :
-        unViewMachine k ct lm next
+    { unViewMachine = \lm next ->
+        viewInstrCmd @sN (Right gen) lm ("commit "<>show exn, "") [] :
+        unViewMachine k lm next
     , viewGen = gen
     } where gen = commit exn (viewGen k)
   catch exn ok ko = ViewMachine
-    { unViewMachine = \ct lm next ->
-        viewInstrCmd (Right gen) ct lm ("catch "<>show exn, "")
-          [ viewInstrArg "ok" (unViewMachine ok ct lm [])
-          , viewInstrArg "ko" (unViewMachine ko ct lm [])
+    { unViewMachine = \lm next ->
+        viewInstrCmd @sN (Right gen) lm ("catch "<>show exn, "")
+          [ viewInstrArg "catchScope" (unViewMachine ok lm [])
+          , viewInstrArg ("onException "<>show exn) (unViewMachine ko lm [])
           ] : next
     , viewGen = gen
     } where gen = catch exn (viewGen ok) (viewGen ko)
-instance InstrBranchable (ViewMachine sN) where
+instance
+  HideableName sN =>
+  InstrBranchable (ViewMachine sN) where
   caseBranch l r = ViewMachine
-    { unViewMachine = \ct lm next ->
-        viewInstrCmd (Right gen) ct lm ("case", "")
-          [ viewInstrArg "left" (unViewMachine l ct lm [])
-          , viewInstrArg "right" (unViewMachine r ct lm [])
+    { unViewMachine = \lm next ->
+        viewInstrCmd @sN (Right gen) lm ("case", "")
+          [ viewInstrArg "left" (unViewMachine l lm [])
+          , viewInstrArg "right" (unViewMachine r lm [])
           ] : next
     , viewGen = gen
     } where gen = caseBranch (viewGen l) (viewGen r)
-  choicesBranch ps bs d = ViewMachine
-    { unViewMachine = \ct lm next ->
-        viewInstrCmd (Right gen) ct lm ("choicesBranch "<>show ps, "") (
-          ((\b -> viewInstrArg "branch" $ unViewMachine b ct lm []) <$> bs) <>
-          [ viewInstrArg "default" (unViewMachine d ct lm []) ]
+  choicesBranch bs d = ViewMachine
+    { unViewMachine = \lm next ->
+        viewInstrCmd @sN (Right gen) lm ("choicesBranch", "") (
+          ((\(p, b) -> viewInstrArg ("branch "<>showSplice p) $
+            unViewMachine b lm []) <$> bs) <>
+          [ viewInstrArg "default" (unViewMachine d lm []) ]
         ) : next
     , viewGen = gen
-    } where gen = choicesBranch ps (viewGen <$> bs) (viewGen d)
+    } where gen = choicesBranch ((viewGen <$>) <$> bs) (viewGen d)
 instance
-  ShowLetName sN TH.Name =>
+  HideableName sN =>
   InstrCallable (ViewMachine sN) where
   defLet defs k = ViewMachine
-    { unViewMachine = \ct lm next ->
-        (<> unViewMachine k ct lm next) $
+    { unViewMachine = \lm next ->
+        (<> unViewMachine k lm next) $
         List.sortBy (compare `on` (((fst <$>) <$>) . Tree.levels)) $
         ((\(n, SomeLet sub) ->
-          viewInstrCmd (Left n) ct lm
-            ("let", " "<>showLetName @sN n)
-            (unViewMachine sub ct lm []))
+          viewInstrCmd @sN (Left n) lm
+            ("let", " "<>show (hideableName @sN n))
+            (unViewMachine sub lm []))
           <$> HM.toList defs)
     , viewGen = gen
     } where gen = defLet ((\(SomeLet x) -> SomeLet (viewGen x)) <$> defs) (viewGen k)
-  jump ln@(LetName n) = ViewMachine
-    { unViewMachine = \ct lm next ->
-        viewInstrCmd (Right gen) ct lm ("jump", " "<>showLetName @sN n) [] : next
+  jump isRec ln@(LetName n) = ViewMachine
+    { unViewMachine = \lm next ->
+        viewInstrCmd @sN (Right gen) lm ("jump", " "<>show (hideableName @sN n)) [] : next
     , viewGen = gen
-    } where gen = jump ln
-  call ln@(LetName n) k = ViewMachine
-    { unViewMachine = \ct lm next ->
-        viewInstrCmd (Right gen) ct lm ("call", " "<>showLetName @sN n) [] :
-        unViewMachine k (n:ct) lm next
+    } where gen = jump isRec ln
+  call isRec ln@(LetName n) k = ViewMachine
+    { unViewMachine = \lm next ->
+        viewInstrCmd @sN (Right gen) lm ("call", " "<>show (hideableName @sN n)) [] :
+        unViewMachine k lm next
     , viewGen = gen
-    } where gen = call ln (viewGen k)
+    } where gen = call isRec ln (viewGen k)
   ret = ViewMachine
-    { unViewMachine = \ct lm next ->
-        viewInstrCmd (Right gen) ct lm ("ret", "") [] : next
+    { unViewMachine = \lm next ->
+        viewInstrCmd @sN (Right gen) lm ("ret", "") [] : next
     , viewGen = gen
     } where gen = ret
 instance
-  ShowLetName sN TH.Name =>
+  HideableName sN =>
   InstrJoinable (ViewMachine sN) where
-  defJoin ln@(LetName n) j k = ViewMachine
-    { unViewMachine = \ct lm next ->
-        viewInstrCmd (Left n) ct lm
-          ("join", " "<>showLetName @sN n)
-          (unViewMachine j ct lm []) :
-        unViewMachine k (n:ct) lm next
+  defJoin ln@(LetName n) sub k = ViewMachine
+    { unViewMachine = \lm next ->
+        viewInstrCmd @sN (Left n) lm
+          ("join", " "<>show (hideableName @sN n))
+          (unViewMachine sub lm []) :
+        unViewMachine k lm next
     , viewGen = gen
-    } where gen = defJoin ln (viewGen j) (viewGen k)
+    } where gen = defJoin ln (viewGen sub) (viewGen k)
   refJoin ln@(LetName n) = ViewMachine
-    { unViewMachine = \ct lm next ->
-        viewInstrCmd (Right gen) ct lm ("refJoin", " "<>showLetName @sN n) [] : next
+    { unViewMachine = \lm next ->
+        viewInstrCmd @sN (Right gen) lm ("refJoin", " "<>show (hideableName @sN n)) [] : next
     , viewGen = gen
     } where gen = refJoin ln
-instance InstrInputable (ViewMachine sN) where
-  pushInput k = ViewMachine
-    { unViewMachine = \ct lm next ->
-        viewInstrCmd (Right gen) ct lm ("pushInput", "") [] :
-        unViewMachine k ct lm next
+instance
+  HideableName sN =>
+  InstrInputable (ViewMachine sN) where
+  saveInput k = ViewMachine
+    { unViewMachine = \lm next ->
+        viewInstrCmd @sN (Right gen) lm ("saveInput", "") [] :
+        unViewMachine k lm next
     , viewGen = gen
-    } where gen = pushInput (viewGen k)
+    } where gen = saveInput (viewGen k)
   loadInput k = ViewMachine
-    { unViewMachine = \ct lm next ->
-        viewInstrCmd (Right gen) ct lm ("loadInput", "") [] :
-        unViewMachine k ct lm next
+    { unViewMachine = \lm next ->
+        viewInstrCmd @sN (Right gen) lm ("loadInput", "") [] :
+        unViewMachine k lm next
     , viewGen = gen
     } where gen = loadInput (viewGen k)
-instance InstrReadable tok Gen => InstrReadable tok (ViewMachine sN) where
+instance
+  ( HideableName sN
+  , InstrReadable tok Gen
+  ) => InstrReadable tok (ViewMachine sN) where
   read es p k = ViewMachine
-    { unViewMachine = \ct lm next ->
-        viewInstrCmd (Right gen) ct lm ("read "<>showsPrec 10 p "", "") [] :
-        unViewMachine k ct lm next
+    { unViewMachine = \lm next ->
+        viewInstrCmd @sN (Right gen) lm ("read "<>showSplice p, "") [] :
+        unViewMachine k lm next
     , viewGen = gen
     } where gen = read es p (viewGen k)
+instance
+  HideableName sN =>
+  InstrIterable (ViewMachine sN) where
+  iter jumpName@(LetName n) ok ko = ViewMachine
+    { unViewMachine = \lm next ->
+        viewInstrCmd @sN (Right gen) lm ("iter", " "<>show (hideableName @sN n))
+          [ viewInstrArg "ok" (unViewMachine ok lm [])
+          , viewInstrArg "ko" (unViewMachine ko lm [])
+          ] : next
+    , viewGen = gen
+    } where gen = iter jumpName (viewGen ok) (viewGen ko)
+instance
+  HideableName sN =>
+  InstrRegisterable (ViewMachine sN) where
+  newRegister reg@(UnscopedRegister r) k = ViewMachine
+    { unViewMachine = \lm next ->
+        viewInstrCmd @sN (Right gen) lm ("newRegister", " "<>show (hideableName @sN r)) [] :
+        unViewMachine k lm next
+    , viewGen = gen
+    } where gen = newRegister reg (viewGen k)
+  readRegister reg@(UnscopedRegister r) k = ViewMachine
+    { unViewMachine = \lm next ->
+        viewInstrCmd @sN (Right gen) lm ("readRegister", " "<>show (hideableName @sN r)) [] :
+        unViewMachine k lm next
+    , viewGen = gen
+    } where gen = readRegister reg (viewGen k)
+  writeRegister reg@(UnscopedRegister r) k = ViewMachine
+    { unViewMachine = \lm next ->
+        viewInstrCmd @sN (Right gen) lm ("writeRegister", " "<>show (hideableName @sN r)) [] :
+        unViewMachine k lm next
+    , viewGen = gen
+    } where gen = writeRegister reg (viewGen k)
diff --git a/symantic-parser.cabal b/symantic-parser.cabal
--- a/symantic-parser.cabal
+++ b/symantic-parser.cabal
@@ -1,22 +1,26 @@
 cabal-version: 3.0
 name: symantic-parser
-version: 0.2.0.20210703
+maintainer: mailto:~julm/symantic-parser@todo.hut.sourcephile.fr
+bug-reports: https://todo.hut.sourcephile.fr/~julm/symantic-parser
+homepage: https://git.hut.sourcephile.fr/~julm/symantic-parser
+author: Julien Moutinho <julm+symantic-parser@sourcephile.fr>
+copyright: Julien Moutinho <julm+symantic-parser@sourcephile.fr>
+license: AGPL-3.0-or-later
+license-file: LICENSES/AGPL-3.0-or-later.txt
+version: 0.2.1.20210803
+stability: experimental
 synopsis: Parser combinators statically optimized and staged via typed meta-programming
 description:
   This is a work-in-progress experimental library to generate parsers,
   leveraging Tagless-Final interpreters and Typed Template Haskell staging.
-  .
+
   This is an alternative but less powerful/reviewed
   implementation of [ParsleyHaskell](https://github.com/J-mie6/ParsleyHaskell).
   See the paper by Jamie Willis, Nicolas Wu, and Matthew Pickering,
   admirably well presented at ICFP-2020: [Staged Selective Parser Combinators](https://icfp20.sigplan.org/details/icfp-2020-papers/20/Staged-Selective-Parser-Combinators).
-license: AGPL-3.0-or-later
-author: Julien Moutinho <julm+symantic-parser@sourcephile.fr>
-maintainer: Julien Moutinho <julm+symantic-parser@sourcephile.fr>
-bug-reports: https://mails.sourcephile.fr/inbox/symantic-parser
-copyright: Julien Moutinho <julm+symantic-parser@sourcephile.fr>
-stability: experimental
 category: Parsing
+build-type: Simple
+tested-with: GHC==9.0.1
 extra-doc-files:
   ChangeLog.md
   Hacking.md
@@ -31,14 +35,12 @@
   Makefile
   parsers/Parsers/Brainfuck/inputs/*.bf
   shell.nix
-  test/Golden/**/*.txt
+  tests/Golden/**/*.txt
 extra-tmp-files:
-build-type: Simple
-tested-with: GHC==9.0.1
 
 source-repository head
   type: git
-  location: git://git.sourcephile.fr/haskell/symantic-parser
+  location: https://git.hut.sourcephile.fr/~julm/symantic-parser
 
 flag dump-core
   description: Dump GHC's Core in HTML
@@ -109,7 +111,7 @@
     hashable,
     -- For Language.Haskell.Ppr.Lib.pprExp
     pretty >= 1.1,
-    symantic-base >= 0.1,
+    symantic-base >= 0.2,
     template-haskell >= 2.16,
     text,
     transformers,
@@ -157,7 +159,7 @@
     megaparsec >= 9.0,
     process >= 1.6,
     strict >= 0.4,
-    symantic-base >= 0.1,
+    symantic-base >= 0.2,
     tasty >= 0.11,
     tasty-golden >= 2.3,
     template-haskell >= 2.16,
@@ -165,11 +167,12 @@
     transformers >= 0.4,
     unix >= 2.7,
     unordered-containers
+  -- ghc-options: -ddump-splices
 
-test-suite symantic-parser-test
+test-suite symantic-parser-tests
   import: boilerplate
   type: exitcode-stdio-1.0
-  hs-source-dirs: test
+  hs-source-dirs: tests
   main-is: Main.hs
   other-modules:
     Golden
diff --git a/test/Golden.hs b/test/Golden.hs
deleted file mode 100644
--- a/test/Golden.hs
+++ /dev/null
@@ -1,16 +0,0 @@
-module Golden where
-
-import Test.Tasty
-
-import qualified Golden.Grammar
-import qualified Golden.Machine
-import qualified Golden.Parser
-import qualified Golden.Splice
-
-goldens :: TestTree
-goldens = testGroup "Golden"
-  [ Golden.Grammar.goldens
-  , Golden.Machine.goldens
-  , Golden.Parser.goldens
-  , Golden.Splice.goldens
-  ]
diff --git a/test/Golden/Grammar.hs b/test/Golden/Grammar.hs
deleted file mode 100644
--- a/test/Golden/Grammar.hs
+++ /dev/null
@@ -1,38 +0,0 @@
-{-# LANGUAGE DataKinds #-} -- For using P.viewGrammar
-{-# LANGUAGE Rank2Types #-}
-{-# LANGUAGE TypeApplications #-}
-module Golden.Grammar where
-
-import Data.Bool (Bool(..))
-import Control.Monad (Monad(..))
-import Data.Function (($))
-import Data.Semigroup (Semigroup(..))
-import Data.String (IsString(..))
-import Test.Tasty
-import Test.Tasty.Golden
-import Text.Show (Show(..))
-import Data.Int (Int)
-import qualified Data.List as List
-
-import Golden.Utils
-import qualified Symantic.Parser as P
-import qualified Grammar
-
-goldens :: TestTree
-goldens = testGroup "Grammar" $
-  [ testGroup "ViewGrammar" $
-    (\f -> List.zipWith f Grammar.grammars [1::Int ..]) $ \gram g ->
-    let grammarFile = getGoldenDir $ "Grammar/ViewGrammar/G"<>show g<>".expected.txt" in
-    goldenVsStringDiff ("G"<>show g) goldenDiff grammarFile $ do
-      resetTHNameCounter
-      return $ fromString $ show $
-        P.viewGrammar @'False gram
-  , testGroup "OptimizeGrammar" $
-    (\f -> List.zipWith f Grammar.grammars [1::Int ..]) $ \gram g ->
-    let grammarFile = getGoldenDir $ "Grammar/OptimizeGrammar/G"<>show g<>".expected.txt" in
-    goldenVsStringDiff ("G"<>show g) goldenDiff grammarFile $ do
-      resetTHNameCounter
-      return $ fromString $ show $
-        P.viewGrammar @'False $
-        P.optimizeGrammar gram
-  ]
diff --git a/test/Golden/Grammar/OptimizeGrammar/G1.expected.txt b/test/Golden/Grammar/OptimizeGrammar/G1.expected.txt
deleted file mode 100644
--- a/test/Golden/Grammar/OptimizeGrammar/G1.expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-lets
-` <*>
-  + pure (\x_0 -> GHC.Show.show 'a')
-  ` satisfy
diff --git a/test/Golden/Grammar/OptimizeGrammar/G10.expected.txt b/test/Golden/Grammar/OptimizeGrammar/G10.expected.txt
deleted file mode 100644
--- a/test/Golden/Grammar/OptimizeGrammar/G10.expected.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-lets
-` <*>
-  + pure GHC.Show.show
-  ` <|>
-    + <*>
-    | + pure (\x_0 -> 'a')
-    | ` satisfy
-    ` <*>
-      + pure (\x_0 -> 'b')
-      ` satisfy
diff --git a/test/Golden/Grammar/OptimizeGrammar/G11.expected.txt b/test/Golden/Grammar/OptimizeGrammar/G11.expected.txt
deleted file mode 100644
--- a/test/Golden/Grammar/OptimizeGrammar/G11.expected.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-lets
-+ let <hidden>
-| ` <|>
-|   + <*>
-|   | + <*>
-|   | | + pure (\x_0 -> \x_1 -> \x_2 -> (GHC.Types.:) 'a' (x_1 x_2))
-|   | | ` satisfy
-|   | ` rec <hidden>
-|   ` pure (\x_0 -> x_0)
-` <*>
-  + <*>
-  | + pure (\x_0 -> \x_1 -> GHC.Show.show (x_0 GHC.Types.[]))
-  | ` ref <hidden>
-  ` satisfy
diff --git a/test/Golden/Grammar/OptimizeGrammar/G12.expected.txt b/test/Golden/Grammar/OptimizeGrammar/G12.expected.txt
deleted file mode 100644
--- a/test/Golden/Grammar/OptimizeGrammar/G12.expected.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-lets
-+ let <hidden>
-| ` <|>
-|   + <*>
-|   | + <*>
-|   | | + pure (\x_0 -> \x_1 -> \x_2 -> (GHC.Types.:) x_0 (x_1 x_2))
-|   | | ` satisfy
-|   | ` rec <hidden>
-|   ` pure (\x_0 -> x_0)
-` <*>
-  + <*>
-  | + pure (\x_0 -> \x_1 -> GHC.Show.show (x_0 GHC.Types.[]))
-  | ` ref <hidden>
-  ` eof
diff --git a/test/Golden/Grammar/OptimizeGrammar/G13.expected.txt b/test/Golden/Grammar/OptimizeGrammar/G13.expected.txt
deleted file mode 100644
--- a/test/Golden/Grammar/OptimizeGrammar/G13.expected.txt
+++ /dev/null
@@ -1,63 +0,0 @@
-lets
-+ let <hidden>
-| ` <*>
-|   + pure (\x_0 -> GHC.Tuple.())
-|   ` ref <hidden>
-+ let <hidden>
-| ` <*>
-|   + pure (\x_0 -> x_0 GHC.Types.[])
-|   ` ref <hidden>
-+ let <hidden>
-| ` <|>
-|   + <*>
-|   | + <*>
-|   | | + <*>
-|   | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> (GHC.Types.:) x_0 (x_2 x_3))
-|   | | | ` conditional
-|   | | |   + look
-|   | | |   | ` satisfy
-|   | | |   + branches
-|   | | |   | + <*>
-|   | | |   | | + pure (\x_0 -> Parsers.Brainfuck.Types.Backward)
-|   | | |   | | ` satisfy
-|   | | |   | + <*>
-|   | | |   | | + pure (\x_0 -> Parsers.Brainfuck.Types.Forward)
-|   | | |   | | ` satisfy
-|   | | |   | + <*>
-|   | | |   | | + pure (\x_0 -> Parsers.Brainfuck.Types.Increment)
-|   | | |   | | ` satisfy
-|   | | |   | + <*>
-|   | | |   | | + pure (\x_0 -> Parsers.Brainfuck.Types.Decrement)
-|   | | |   | | ` satisfy
-|   | | |   | + <*>
-|   | | |   | | + pure (\x_0 -> Parsers.Brainfuck.Types.Input)
-|   | | |   | | ` satisfy
-|   | | |   | + <*>
-|   | | |   | | + pure (\x_0 -> Parsers.Brainfuck.Types.Output)
-|   | | |   | | ` satisfy
-|   | | |   | ` <*>
-|   | | |   |   + <*>
-|   | | |   |   | + <*>
-|   | | |   |   | | + <*>
-|   | | |   |   | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> Parsers.Brainfuck.Types.Loop x_2)
-|   | | |   |   | | | ` satisfy
-|   | | |   |   | | ` ref <hidden>
-|   | | |   |   | ` rec <hidden>
-|   | | |   |   ` satisfy
-|   | | |   ` failure
-|   | | ` 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)
-` <*>
-  + <*>
-  | + pure (\x_0 -> \x_1 -> GHC.Show.show x_1)
-  | ` ref <hidden>
-  ` ref <hidden>
diff --git a/test/Golden/Grammar/OptimizeGrammar/G14.expected.txt b/test/Golden/Grammar/OptimizeGrammar/G14.expected.txt
deleted file mode 100644
--- a/test/Golden/Grammar/OptimizeGrammar/G14.expected.txt
+++ /dev/null
@@ -1,410 +0,0 @@
-lets
-+ let <hidden>
-| ` <*>
-|   + <*>
-|   | + pure (\x_0 -> \x_1 -> x_1)
-|   | ` ref <hidden>
-|   ` <|>
-|     + <*>
-|     | + pure (\x_0 -> GHC.Tuple.())
-|     | ` ref <hidden>
-|     ` ref <hidden>
-+ let <hidden>
-| ` <*>
-|   + <*>
-|   | + <*>
-|   | | + <*>
-|   | | | + 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_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
-|   | | | | ` ref <hidden>
-|   | | | ` ref <hidden>
-|   | | ` ref <hidden>
-|   | ` satisfy
-|   ` ref <hidden>
-+ let <hidden>
-| ` <*>
-|   + <*>
-|   | + pure (\x_0 -> \x_1 -> '(')
-|   | ` satisfy
-|   ` ref <hidden>
-+ let <hidden>
-| ` <*>
-|   + <*>
-|   | + pure (\x_0 -> \x_1 -> ')')
-|   | ` satisfy
-|   ` ref <hidden>
-+ let <hidden>
-| ` <*>
-|   + <*>
-|   | + pure (\x_0 -> \x_1 -> ',')
-|   | ` satisfy
-|   ` ref <hidden>
-+ let <hidden>
-| ` <*>
-|   + <*>
-|   | + pure (\x_0 -> \x_1 -> ';')
-|   | ` satisfy
-|   ` ref <hidden>
-+ let <hidden>
-| ` <*>
-|   + <*>
-|   | + pure (\x_0 -> \x_1 -> GHC.Tuple.())
-|   | ` ref <hidden>
-|   ` ref <hidden>
-+ let <hidden>
-| ` <*>
-|   + <*>
-|   | + pure (\x_0 -> \x_1 -> x_1)
-|   | ` satisfy
-|   ` ref <hidden>
-+ let <hidden>
-| ` <*>
-|   + <*>
-|   | + pure (\x_0 -> \x_1 -> x_1)
-|   | ` try
-|   |   ` <*>
-|   |     + <*>
-|   |     | + <*>
-|   |     | | + <*>
-|   |     | | | + 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_1)
-|   | | ` <|>
-|   | |   + <*>
-|   | |   | + pure (\x_0 -> '0')
-|   | |   | ` satisfy
-|   | |   ` <*>
-|   | |     + pure (\x_0 -> '1')
-|   | |     ` satisfy
-|   | ` ref <hidden>
-|   ` <|>
-|     + <*>
-|     | + <*>
-|     | | + <*>
-|     | | | + <*>
-|     | | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> x_1)
-|     | | | | ` satisfy
-|     | | | ` <|>
-|     | | |   + <*>
-|     | | |   | + <*>
-|     | | |   | | + pure (\x_0 -> \x_1 -> x_1)
-|     | | |   | | ` satisfy
-|     | | |   | ` ref <hidden>
-|     | | |   ` <*>
-|     | | |     + <*>
-|     | | |     | + <*>
-|     | | |     | | + pure (\x_0 -> \x_1 -> \x_2 -> x_2)
-|     | | |     | | ` satisfy
-|     | | |     | ` satisfy
-|     | | |     ` ref <hidden>
-|     | | ` satisfy
-|     | ` ref <hidden>
-|     ` <*>
-|       + <*>
-|       | + pure (\x_0 -> \x_1 -> x_1)
-|       | ` ref <hidden>
-|       ` <|>
-|         + <*>
-|         | + pure (\x_0 -> GHC.Tuple.())
-|         | ` <|>
-|         |   + <*>
-|         |   | + <*>
-|         |   | | + <*>
-|         |   | | | + pure (\x_0 -> \x_1 -> \x_2 -> x_1)
-|         |   | | | ` ref <hidden>
-|         |   | | ` <|>
-|         |   | |   + <*>
-|         |   | |   | + <*>
-|         |   | |   | | + <*>
-|         |   | |   | | | + <*>
-|         |   | |   | | | | + 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 -> \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 -> \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 (\x_0 -> \x_1 -> x_1)
-+ let <hidden>
-| ` pure GHC.Tuple.()
-+ let <hidden>
-| ` pure GHC.Tuple.()
-+ let <hidden>
-| ` satisfy
-` <*>
-  + <*>
-  | + <*>
-  | | + <*>
-  | | | + <*>
-  | | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> \x_4 -> GHC.Show.show x_3)
-  | | | | ` ref <hidden>
-  | | | ` ref <hidden>
-  | | ` ref <hidden>
-  | ` ref <hidden>
-  ` eof
diff --git a/test/Golden/Grammar/OptimizeGrammar/G15.expected.txt b/test/Golden/Grammar/OptimizeGrammar/G15.expected.txt
deleted file mode 100644
--- a/test/Golden/Grammar/OptimizeGrammar/G15.expected.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-lets
-` <*>
-  + <*>
-  | + pure (\x_0 -> \x_1 -> GHC.Show.show x_0)
-  | ` <|>
-  |   + <*>
-  |   | + pure (\x_0 -> 'a')
-  |   | ` satisfy
-  |   ` <*>
-  |     + pure (\x_0 -> 'b')
-  |     ` satisfy
-  ` satisfy
diff --git a/test/Golden/Grammar/OptimizeGrammar/G16.expected.txt b/test/Golden/Grammar/OptimizeGrammar/G16.expected.txt
deleted file mode 100644
--- a/test/Golden/Grammar/OptimizeGrammar/G16.expected.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-lets
-` <*>
-  + <*>
-  | + pure (\x_0 -> \x_1 -> GHC.Show.show x_0)
-  | ` <|>
-  |   + <*>
-  |   | + pure (\x_0 -> 'a')
-  |   | ` satisfy
-  |   ` <|>
-  |     + <*>
-  |     | + pure (\x_0 -> 'b')
-  |     | ` satisfy
-  |     ` <*>
-  |       + pure (\x_0 -> 'c')
-  |       ` satisfy
-  ` satisfy
diff --git a/test/Golden/Grammar/OptimizeGrammar/G2.expected.txt b/test/Golden/Grammar/OptimizeGrammar/G2.expected.txt
deleted file mode 100644
--- a/test/Golden/Grammar/OptimizeGrammar/G2.expected.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-lets
-` <*>
-  + pure GHC.Show.show
-  ` try
-    ` <*>
-      + <*>
-      | + <*>
-      | | + pure (\x_0 -> \x_1 -> \x_2 -> (GHC.Types.:) 'a' ((GHC.Types.:) 'b' ((GHC.Types.:) 'c' GHC.Types.[])))
-      | | ` satisfy
-      | ` satisfy
-      ` satisfy
diff --git a/test/Golden/Grammar/OptimizeGrammar/G3.expected.txt b/test/Golden/Grammar/OptimizeGrammar/G3.expected.txt
deleted file mode 100644
--- a/test/Golden/Grammar/OptimizeGrammar/G3.expected.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-lets
-+ let <hidden>
-| ` <|>
-|   + <*>
-|   | + <*>
-|   | | + pure (\x_0 -> \x_1 -> \x_2 -> (GHC.Types.:) 'a' (x_1 x_2))
-|   | | ` satisfy
-|   | ` rec <hidden>
-|   ` pure (\x_0 -> x_0)
-` <*>
-  + pure (\x_0 -> GHC.Show.show (x_0 GHC.Types.[]))
-  ` ref <hidden>
diff --git a/test/Golden/Grammar/OptimizeGrammar/G4.expected.txt b/test/Golden/Grammar/OptimizeGrammar/G4.expected.txt
deleted file mode 100644
--- a/test/Golden/Grammar/OptimizeGrammar/G4.expected.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-lets
-+ let <hidden>
-| ` <|>
-|   + <*>
-|   | + <*>
-|   | | + pure (\x_0 -> \x_1 -> \x_2 -> (GHC.Types.:) x_0 (x_1 x_2))
-|   | | ` ref <hidden>
-|   | ` rec <hidden>
-|   ` pure (\x_0 -> x_0)
-+ let <hidden>
-| ` try
-|   ` <*>
-|     + <*>
-|     | + <*>
-|     | | + <*>
-|     | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> (GHC.Types.:) 'a' ((GHC.Types.:) 'b' ((GHC.Types.:) 'c' ((GHC.Types.:) 'd' GHC.Types.[]))))
-|     | | | ` satisfy
-|     | | ` satisfy
-|     | ` satisfy
-|     ` satisfy
-` <*>
-  + <*>
-  | + pure (\x_0 -> \x_1 -> GHC.Show.show ((GHC.Types.:) x_0 (x_1 GHC.Types.[])))
-  | ` ref <hidden>
-  ` ref <hidden>
diff --git a/test/Golden/Grammar/OptimizeGrammar/G5.expected.txt b/test/Golden/Grammar/OptimizeGrammar/G5.expected.txt
deleted file mode 100644
--- a/test/Golden/Grammar/OptimizeGrammar/G5.expected.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-lets
-+ let <hidden>
-| ` <|>
-|   + <*>
-|   | + <*>
-|   | | + pure (\x_0 -> \x_1 -> \x_2 -> (GHC.Types.:) x_0 (x_1 x_2))
-|   | | ` ref <hidden>
-|   | ` rec <hidden>
-|   ` pure (\x_0 -> x_0)
-+ let <hidden>
-| ` try
-|   ` <*>
-|     + <*>
-|     | + <*>
-|     | | + <*>
-|     | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> (GHC.Types.:) 'a' ((GHC.Types.:) 'b' ((GHC.Types.:) 'c' ((GHC.Types.:) 'd' GHC.Types.[]))))
-|     | | | ` satisfy
-|     | | ` satisfy
-|     | ` satisfy
-|     ` satisfy
-` <*>
-  + <*>
-  | + <*>
-  | | + pure (\x_0 -> \x_1 -> \x_2 -> GHC.Show.show ((GHC.Types.:) x_0 (x_1 GHC.Types.[])))
-  | | ` ref <hidden>
-  | ` ref <hidden>
-  ` eof
diff --git a/test/Golden/Grammar/OptimizeGrammar/G6.expected.txt b/test/Golden/Grammar/OptimizeGrammar/G6.expected.txt
deleted file mode 100644
--- a/test/Golden/Grammar/OptimizeGrammar/G6.expected.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-lets
-` <*>
-  + pure GHC.Show.show
-  ` <|>
-    + <*>
-    | + <*>
-    | | + pure (\x_0 -> \x_1 -> (GHC.Types.:) 'a' ((GHC.Types.:) 'a' GHC.Types.[]))
-    | | ` satisfy
-    | ` satisfy
-    ` <*>
-      + <*>
-      | + pure (\x_0 -> \x_1 -> (GHC.Types.:) 'a' ((GHC.Types.:) 'b' GHC.Types.[]))
-      | ` satisfy
-      ` satisfy
diff --git a/test/Golden/Grammar/OptimizeGrammar/G7.expected.txt b/test/Golden/Grammar/OptimizeGrammar/G7.expected.txt
deleted file mode 100644
--- a/test/Golden/Grammar/OptimizeGrammar/G7.expected.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-lets
-` <*>
-  + pure GHC.Show.show
-  ` <|>
-    + try
-    | ` <*>
-    |   + <*>
-    |   | + pure (\x_0 -> \x_1 -> (GHC.Types.:) 'a' ((GHC.Types.:) 'a' GHC.Types.[]))
-    |   | ` satisfy
-    |   ` satisfy
-    ` try
-      ` <*>
-        + <*>
-        | + pure (\x_0 -> \x_1 -> (GHC.Types.:) 'a' ((GHC.Types.:) 'b' GHC.Types.[]))
-        | ` satisfy
-        ` satisfy
diff --git a/test/Golden/Grammar/OptimizeGrammar/G8.expected.txt b/test/Golden/Grammar/OptimizeGrammar/G8.expected.txt
deleted file mode 100644
--- a/test/Golden/Grammar/OptimizeGrammar/G8.expected.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-lets
-+ let <hidden>
-| ` <|>
-|   + <*>
-|   | + <*>
-|   | | + pure (\x_0 -> \x_1 -> \x_2 -> (GHC.Types.:) 'r' (x_1 x_2))
-|   | | ` satisfy
-|   | ` rec <hidden>
-|   ` pure (\x_0 -> x_0)
-` <*>
-  + <*>
-  | + pure (\x_0 -> \x_1 -> GHC.Show.show (x_0 GHC.Types.[]))
-  | ` ref <hidden>
-  ` eof
diff --git a/test/Golden/Grammar/OptimizeGrammar/G9.expected.txt b/test/Golden/Grammar/OptimizeGrammar/G9.expected.txt
deleted file mode 100644
--- a/test/Golden/Grammar/OptimizeGrammar/G9.expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-lets
-` <*>
-  + pure GHC.Show.show
-  ` eof
diff --git a/test/Golden/Grammar/ViewGrammar/G1.expected.txt b/test/Golden/Grammar/ViewGrammar/G1.expected.txt
deleted file mode 100644
--- a/test/Golden/Grammar/ViewGrammar/G1.expected.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-lets
-` <*>
-  + pure GHC.Show.show
-  ` <*>
-    + <*>
-    | + pure (\x_0 -> \x_1 -> x_0)
-    | ` pure 'a'
-    ` satisfy
diff --git a/test/Golden/Grammar/ViewGrammar/G10.expected.txt b/test/Golden/Grammar/ViewGrammar/G10.expected.txt
deleted file mode 100644
--- a/test/Golden/Grammar/ViewGrammar/G10.expected.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-lets
-` <*>
-  + pure GHC.Show.show
-  ` <|>
-    + <*>
-    | + <*>
-    | | + pure (\x_0 -> \x_1 -> x_0)
-    | | ` pure 'a'
-    | ` satisfy
-    ` <*>
-      + <*>
-      | + pure (\x_0 -> \x_1 -> x_0)
-      | ` pure 'b'
-      ` satisfy
diff --git a/test/Golden/Grammar/ViewGrammar/G11.expected.txt b/test/Golden/Grammar/ViewGrammar/G11.expected.txt
deleted file mode 100644
--- a/test/Golden/Grammar/ViewGrammar/G11.expected.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-lets
-+ let <hidden>
-| ` <|>
-|   + <*>
-|   | + <*>
-|   | | + pure (\x_0 -> \x_1 -> \x_2 -> x_0 (x_1 x_2))
-|   | | ` <*>
-|   | |   + pure (GHC.Types.:)
-|   | |   ` <*>
-|   | |     + <*>
-|   | |     | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     | ` pure 'a'
-|   | |     ` satisfy
-|   | ` rec <hidden>
-|   ` pure (\x_0 -> x_0)
-` <*>
-  + pure GHC.Show.show
-  ` <*>
-    + <*>
-    | + pure (\x_0 -> \x_1 -> x_0)
-    | ` <*>
-    |   + ref <hidden>
-    |   ` pure GHC.Types.[]
-    ` <*>
-      + <*>
-      | + pure (\x_0 -> \x_1 -> x_0)
-      | ` pure 'b'
-      ` satisfy
diff --git a/test/Golden/Grammar/ViewGrammar/G12.expected.txt b/test/Golden/Grammar/ViewGrammar/G12.expected.txt
deleted file mode 100644
--- a/test/Golden/Grammar/ViewGrammar/G12.expected.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-lets
-+ let <hidden>
-| ` <|>
-|   + <*>
-|   | + <*>
-|   | | + pure (\x_0 -> \x_1 -> \x_2 -> x_0 (x_1 x_2))
-|   | | ` <*>
-|   | |   + pure (GHC.Types.:)
-|   | |   ` satisfy
-|   | ` rec <hidden>
-|   ` pure (\x_0 -> x_0)
-` <*>
-  + pure GHC.Show.show
-  ` <*>
-    + <*>
-    | + pure (\x_0 -> \x_1 -> x_0)
-    | ` <*>
-    |   + ref <hidden>
-    |   ` pure GHC.Types.[]
-    ` eof
diff --git a/test/Golden/Grammar/ViewGrammar/G13.expected.txt b/test/Golden/Grammar/ViewGrammar/G13.expected.txt
deleted file mode 100644
--- a/test/Golden/Grammar/ViewGrammar/G13.expected.txt
+++ /dev/null
@@ -1,107 +0,0 @@
-lets
-+ let <hidden>
-| ` <*>
-|   + <*>
-|   | + <*>
-|   | | + pure (\x_0 -> \x_1 -> x_0)
-|   | | ` pure (\x_0 -> x_0)
-|   | ` <*>
-|   |   + <*>
-|   |   | + pure ((\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1) (\x_3 -> \x_4 -> x_3 x_4))
-|   |   | ` pure GHC.Tuple.()
-|   |   ` ref <hidden>
-|   ` pure GHC.Tuple.()
-+ let <hidden>
-| ` <*>
-|   + ref <hidden>
-|   ` pure GHC.Types.[]
-+ let <hidden>
-| ` <|>
-|   + <*>
-|   | + <*>
-|   | | + pure (\x_0 -> \x_1 -> \x_2 -> x_0 (x_1 x_2))
-|   | | ` <*>
-|   | |   + <*>
-|   | |   | + pure (\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1)
-|   | |   | ` pure (\x_0 -> \x_1 -> x_0)
-|   | |   ` satisfy
-|   | ` rec <hidden>
-|   ` pure (\x_0 -> x_0)
-+ let <hidden>
-| ` <|>
-|   + <*>
-|   | + <*>
-|   | | + pure (\x_0 -> \x_1 -> \x_2 -> x_0 (x_1 x_2))
-|   | | ` <*>
-|   | |   + pure (GHC.Types.:)
-|   | |   ` <*>
-|   | |     + <*>
-|   | |     | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     | ` conditional
-|   | |     |   + look
-|   | |     |   | ` satisfy
-|   | |     |   + branches
-|   | |     |   | + <*>
-|   | |     |   | | + <*>
-|   | |     |   | | | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |   | | | ` pure Parsers.Brainfuck.Types.Backward
-|   | |     |   | | ` satisfy
-|   | |     |   | + <*>
-|   | |     |   | | + <*>
-|   | |     |   | | | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |   | | | ` pure Parsers.Brainfuck.Types.Forward
-|   | |     |   | | ` satisfy
-|   | |     |   | + <*>
-|   | |     |   | | + <*>
-|   | |     |   | | | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |   | | | ` pure Parsers.Brainfuck.Types.Increment
-|   | |     |   | | ` satisfy
-|   | |     |   | + <*>
-|   | |     |   | | + <*>
-|   | |     |   | | | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |   | | | ` pure Parsers.Brainfuck.Types.Decrement
-|   | |     |   | | ` satisfy
-|   | |     |   | + <*>
-|   | |     |   | | + <*>
-|   | |     |   | | | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |   | | | ` pure Parsers.Brainfuck.Types.Input
-|   | |     |   | | ` satisfy
-|   | |     |   | + <*>
-|   | |     |   | | + <*>
-|   | |     |   | | | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |   | | | ` pure Parsers.Brainfuck.Types.Output
-|   | |     |   | | ` satisfy
-|   | |     |   | ` <*>
-|   | |     |   |   + <*>
-|   | |     |   |   | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |   |   | ` <*>
-|   | |     |   |   |   + <*>
-|   | |     |   |   |   | + <*>
-|   | |     |   |   |   | | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |   |   |   | | ` pure (\x_0 -> x_0)
-|   | |     |   |   |   | ` <*>
-|   | |     |   |   |   |   + <*>
-|   | |     |   |   |   |   | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |   |   |   |   | ` satisfy
-|   | |     |   |   |   |   ` ref <hidden>
-|   | |     |   |   |   ` <*>
-|   | |     |   |   |     + pure Parsers.Brainfuck.Types.Loop
-|   | |     |   |   |     ` rec <hidden>
-|   | |     |   |   ` <*>
-|   | |     |   |     + <*>
-|   | |     |   |     | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |   |     | ` pure ']'
-|   | |     |   |     ` satisfy
-|   | |     |   ` failure
-|   | |     ` ref <hidden>
-|   | ` rec <hidden>
-|   ` pure (\x_0 -> x_0)
-` <*>
-  + pure GHC.Show.show
-  ` <*>
-    + <*>
-    | + <*>
-    | | + pure (\x_0 -> \x_1 -> x_0)
-    | | ` pure (\x_0 -> x_0)
-    | ` ref <hidden>
-    ` ref <hidden>
diff --git a/test/Golden/Grammar/ViewGrammar/G14.expected.txt b/test/Golden/Grammar/ViewGrammar/G14.expected.txt
deleted file mode 100644
--- a/test/Golden/Grammar/ViewGrammar/G14.expected.txt
+++ /dev/null
@@ -1,844 +0,0 @@
-lets
-+ let <hidden>
-| ` <*>
-|   + <*>
-|   | + <*>
-|   | | + pure (\x_0 -> \x_1 -> x_0)
-|   | | ` pure (\x_0 -> x_0)
-|   | ` ref <hidden>
-|   ` <*>
-|     + <*>
-|     | + <*>
-|     | | + pure (\x_0 -> \x_1 -> x_0)
-|     | | ` pure (\x_0 -> x_0)
-|     | ` <*>
-|     |   + <*>
-|     |   | + pure ((\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1) (\x_3 -> \x_4 -> x_3 x_4))
-|     |   | ` pure GHC.Tuple.()
-|     |   ` ref <hidden>
-|     ` pure GHC.Tuple.()
-+ let <hidden>
-| ` <*>
-|   + <*>
-|   | + <*>
-|   | | + pure (\x_0 -> \x_1 -> x_0)
-|   | | ` pure (\x_0 -> x_0)
-|   | ` ref <hidden>
-|   ` <*>
-|     + <*>
-|     | + <*>
-|     | | + pure (\x_0 -> \x_1 -> x_0)
-|     | | ` pure (\x_0 -> x_0)
-|     | ` <*>
-|     |   + <*>
-|     |   | + pure ((\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1) (\x_3 -> \x_4 -> x_3 x_4))
-|     |   | ` ref <hidden>
-|     |   ` ref <hidden>
-|     ` ref <hidden>
-+ let <hidden>
-| ` <*>
-|   + <*>
-|   | + pure (\x_0 -> \x_1 -> x_0)
-|   | ` <*>
-|   |   + <*>
-|   |   | + <*>
-|   |   | | + pure (\x_0 -> \x_1 -> x_0)
-|   |   | | ` pure (\x_0 -> x_0)
-|   |   | ` <*>
-|   |   |   + <*>
-|   |   |   | + pure (\x_0 -> \x_1 -> x_0)
-|   |   |   | ` <*>
-|   |   |   |   + <*>
-|   |   |   |   | + pure (\x_0 -> \x_1 -> x_0)
-|   |   |   |   | ` pure '['
-|   |   |   |   ` satisfy
-|   |   |   ` ref <hidden>
-|   |   ` <*>
-|   |     + <*>
-|   |     | + <*>
-|   |     | | + pure (\x_0 -> \x_1 -> x_0)
-|   |     | | ` pure (\x_0 -> x_0)
-|   |     | ` ref <hidden>
-|   |     ` <*>
-|   |       + <*>
-|   |       | + <*>
-|   |       | | + pure (\x_0 -> \x_1 -> x_0)
-|   |       | | ` pure (\x_0 -> x_0)
-|   |       | ` <*>
-|   |       |   + <*>
-|   |       |   | + pure ((\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1) (\x_3 -> \x_4 -> x_3 x_4))
-|   |       |   | ` pure GHC.Tuple.()
-|   |       |   ` ref <hidden>
-|   |       ` pure GHC.Tuple.()
-|   ` <*>
-|     + <*>
-|     | + pure (\x_0 -> \x_1 -> x_0)
-|     | ` <*>
-|     |   + <*>
-|     |   | + pure (\x_0 -> \x_1 -> x_0)
-|     |   | ` pure ']'
-|     |   ` satisfy
-|     ` ref <hidden>
-+ let <hidden>
-| ` <*>
-|   + <*>
-|   | + pure (\x_0 -> \x_1 -> x_0)
-|   | ` <*>
-|   |   + <*>
-|   |   | + <*>
-|   |   | | + pure (\x_0 -> \x_1 -> x_0)
-|   |   | | ` pure (\x_0 -> x_0)
-|   |   | ` <*>
-|   |   |   + <*>
-|   |   |   | + pure (\x_0 -> \x_1 -> x_0)
-|   |   |   | ` <*>
-|   |   |   |   + <*>
-|   |   |   |   | + pure (\x_0 -> \x_1 -> x_0)
-|   |   |   |   | ` pure '{'
-|   |   |   |   ` satisfy
-|   |   |   ` ref <hidden>
-|   |   ` <*>
-|   |     + <*>
-|   |     | + <*>
-|   |     | | + pure (\x_0 -> \x_1 -> x_0)
-|   |     | | ` pure (\x_0 -> x_0)
-|   |     | ` <*>
-|   |     |   + <*>
-|   |     |   | + pure ((\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1) (\x_3 -> \x_4 -> x_3 x_4))
-|   |     |   | ` ref <hidden>
-|   |     |   ` ref <hidden>
-|   |     ` ref <hidden>
-|   ` <*>
-|     + <*>
-|     | + pure (\x_0 -> \x_1 -> x_0)
-|     | ` <*>
-|     |   + <*>
-|     |   | + pure (\x_0 -> \x_1 -> x_0)
-|     |   | ` pure '}'
-|     |   ` satisfy
-|     ` ref <hidden>
-+ let <hidden>
-| ` <*>
-|   + <*>
-|   | + <*>
-|   | | + pure (\x_0 -> \x_1 -> x_0)
-|   | | ` pure (\x_0 -> x_0)
-|   | ` ref <hidden>
-|   ` <|>
-|     + <*>
-|     | + <*>
-|     | | + pure (\x_0 -> \x_1 -> x_0)
-|     | | ` pure GHC.Tuple.()
-|     | ` ref <hidden>
-|     ` ref <hidden>
-+ let <hidden>
-| ` <*>
-|   + <*>
-|   | + <*>
-|   | | + pure (\x_0 -> \x_1 -> x_0)
-|   | | ` pure (\x_0 -> x_0)
-|   | ` satisfy
-|   ` ref <hidden>
-+ let <hidden>
-| ` <*>
-|   + <*>
-|   | + <*>
-|   | | + pure (\x_0 -> \x_1 -> x_0)
-|   | | ` pure (\x_0 -> x_0)
-|   | ` try
-|   |   ` <*>
-|   |     + <*>
-|   |     | + <*>
-|   |     | | + pure (\x_0 -> \x_1 -> x_0)
-|   |     | | ` pure (\x_0 -> x_0)
-|   |     | ` satisfy
-|   |     ` <*>
-|   |       + <*>
-|   |       | + <*>
-|   |       | | + pure (\x_0 -> \x_1 -> x_0)
-|   |       | | ` pure (\x_0 -> x_0)
-|   |       | ` <*>
-|   |       |   + <*>
-|   |       |   | + pure ((\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1) (\x_3 -> \x_4 -> x_3 x_4))
-|   |       |   | ` ref <hidden>
-|   |       |   ` ref <hidden>
-|   |       ` ref <hidden>
-|   ` ref <hidden>
-+ let <hidden>
-| ` <*>
-|   + <*>
-|   | + pure (\x_0 -> \x_1 -> x_0)
-|   | ` <*>
-|   |   + <*>
-|   |   | + pure (\x_0 -> \x_1 -> x_0)
-|   |   | ` pure '('
-|   |   ` satisfy
-|   ` ref <hidden>
-+ let <hidden>
-| ` <*>
-|   + <*>
-|   | + pure (\x_0 -> \x_1 -> x_0)
-|   | ` <*>
-|   |   + <*>
-|   |   | + pure (\x_0 -> \x_1 -> x_0)
-|   |   | ` pure ')'
-|   |   ` satisfy
-|   ` ref <hidden>
-+ let <hidden>
-| ` <*>
-|   + <*>
-|   | + pure (\x_0 -> \x_1 -> x_0)
-|   | ` <*>
-|   |   + <*>
-|   |   | + pure (\x_0 -> \x_1 -> x_0)
-|   |   | ` pure ','
-|   |   ` satisfy
-|   ` ref <hidden>
-+ let <hidden>
-| ` <*>
-|   + <*>
-|   | + pure (\x_0 -> \x_1 -> x_0)
-|   | ` <*>
-|   |   + <*>
-|   |   | + pure (\x_0 -> \x_1 -> x_0)
-|   |   | ` pure ';'
-|   |   ` satisfy
-|   ` ref <hidden>
-+ let <hidden>
-| ` <*>
-|   + pure (\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1)
-|   ` pure (\x_0 -> \x_1 -> x_0)
-+ let <hidden>
-| ` <|>
-|   + <*>
-|   | + <*>
-|   | | + pure (\x_0 -> \x_1 -> \x_2 -> x_0 (x_1 x_2))
-|   | | ` <*>
-|   | |   + <*>
-|   | |   | + pure (\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1)
-|   | |   | ` pure (\x_0 -> \x_1 -> x_0)
-|   | |   ` <*>
-|   | |     + <*>
-|   | |     | + <*>
-|   | |     | | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     | | ` pure (\x_0 -> x_0)
-|   | |     | ` <*>
-|   | |     |   + <*>
-|   | |     |   | + <*>
-|   | |     |   | | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |   | | ` pure (\x_0 -> x_0)
-|   | |     |   | ` <*>
-|   | |     |   |   + <*>
-|   | |     |   |   | + <*>
-|   | |     |   |   | | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |   |   | | ` pure (\x_0 -> x_0)
-|   | |     |   |   | ` <*>
-|   | |     |   |   |   + <*>
-|   | |     |   |   |   | + <*>
-|   | |     |   |   |   | | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |   |   |   | | ` pure (\x_0 -> x_0)
-|   | |     |   |   |   | ` try
-|   | |     |   |   |   |   ` <*>
-|   | |     |   |   |   |     + <*>
-|   | |     |   |   |   |     | + pure (GHC.Types.:)
-|   | |     |   |   |   |     | ` <*>
-|   | |     |   |   |   |     |   + <*>
-|   | |     |   |   |   |     |   | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |   |   |   |     |   | ` pure 'f'
-|   | |     |   |   |   |     |   ` satisfy
-|   | |     |   |   |   |     ` <*>
-|   | |     |   |   |   |       + <*>
-|   | |     |   |   |   |       | + pure (GHC.Types.:)
-|   | |     |   |   |   |       | ` <*>
-|   | |     |   |   |   |       |   + <*>
-|   | |     |   |   |   |       |   | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |   |   |   |       |   | ` pure 'u'
-|   | |     |   |   |   |       |   ` satisfy
-|   | |     |   |   |   |       ` <*>
-|   | |     |   |   |   |         + <*>
-|   | |     |   |   |   |         | + pure (GHC.Types.:)
-|   | |     |   |   |   |         | ` <*>
-|   | |     |   |   |   |         |   + <*>
-|   | |     |   |   |   |         |   | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |   |   |   |         |   | ` pure 'n'
-|   | |     |   |   |   |         |   ` satisfy
-|   | |     |   |   |   |         ` <*>
-|   | |     |   |   |   |           + <*>
-|   | |     |   |   |   |           | + pure (GHC.Types.:)
-|   | |     |   |   |   |           | ` <*>
-|   | |     |   |   |   |           |   + <*>
-|   | |     |   |   |   |           |   | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |   |   |   |           |   | ` pure 'c'
-|   | |     |   |   |   |           |   ` satisfy
-|   | |     |   |   |   |           ` <*>
-|   | |     |   |   |   |             + <*>
-|   | |     |   |   |   |             | + pure (GHC.Types.:)
-|   | |     |   |   |   |             | ` <*>
-|   | |     |   |   |   |             |   + <*>
-|   | |     |   |   |   |             |   | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |   |   |   |             |   | ` pure 't'
-|   | |     |   |   |   |             |   ` satisfy
-|   | |     |   |   |   |             ` <*>
-|   | |     |   |   |   |               + <*>
-|   | |     |   |   |   |               | + pure (GHC.Types.:)
-|   | |     |   |   |   |               | ` <*>
-|   | |     |   |   |   |               |   + <*>
-|   | |     |   |   |   |               |   | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |   |   |   |               |   | ` pure 'i'
-|   | |     |   |   |   |               |   ` satisfy
-|   | |     |   |   |   |               ` <*>
-|   | |     |   |   |   |                 + <*>
-|   | |     |   |   |   |                 | + pure (GHC.Types.:)
-|   | |     |   |   |   |                 | ` <*>
-|   | |     |   |   |   |                 |   + <*>
-|   | |     |   |   |   |                 |   | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |   |   |   |                 |   | ` pure 'o'
-|   | |     |   |   |   |                 |   ` satisfy
-|   | |     |   |   |   |                 ` <*>
-|   | |     |   |   |   |                   + <*>
-|   | |     |   |   |   |                   | + pure (GHC.Types.:)
-|   | |     |   |   |   |                   | ` <*>
-|   | |     |   |   |   |                   |   + <*>
-|   | |     |   |   |   |                   |   | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |   |   |   |                   |   | ` pure 'n'
-|   | |     |   |   |   |                   |   ` satisfy
-|   | |     |   |   |   |                   ` pure GHC.Types.[]
-|   | |     |   |   |   ` ref <hidden>
-|   | |     |   |   ` ref <hidden>
-|   | |     |   ` <*>
-|   | |     |     + <*>
-|   | |     |     | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |     | ` <*>
-|   | |     |     |   + <*>
-|   | |     |     |   | + <*>
-|   | |     |     |   | | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |     |   | | ` pure (\x_0 -> x_0)
-|   | |     |     |   | ` ref <hidden>
-|   | |     |     |   ` <*>
-|   | |     |     |     + <*>
-|   | |     |     |     | + <*>
-|   | |     |     |     | | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |     |     | | ` pure (\x_0 -> x_0)
-|   | |     |     |     | ` ref <hidden>
-|   | |     |     |     ` <|>
-|   | |     |     |       + <*>
-|   | |     |     |       | + <*>
-|   | |     |     |       | | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |     |       | | ` pure GHC.Tuple.()
-|   | |     |     |       | ` <*>
-|   | |     |     |       |   + <*>
-|   | |     |     |       |   | + <*>
-|   | |     |     |       |   | | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |     |       |   | | ` pure (\x_0 -> x_0)
-|   | |     |     |       |   | ` <*>
-|   | |     |     |       |   |   + <*>
-|   | |     |     |       |   |   | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |     |       |   |   | ` <*>
-|   | |     |     |       |   |   |   + <*>
-|   | |     |     |       |   |   |   | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |     |       |   |   |   | ` pure ':'
-|   | |     |     |       |   |   |   ` 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_0 (x_1 x_2))
-|   | | ` <*>
-|   | |   + <*>
-|   | |   | + pure (\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1)
-|   | |   | ` pure (\x_0 -> \x_1 -> x_0)
-|   | |   ` <*>
-|   | |     + <*>
-|   | |     | + <*>
-|   | |     | | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     | | ` pure (\x_0 -> x_0)
-|   | |     | ` <*>
-|   | |     |   + <*>
-|   | |     |   | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |   | ` <*>
-|   | |     |   |   + <*>
-|   | |     |   |   | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |   |   | ` pure '!'
-|   | |     |   |   ` satisfy
-|   | |     |   ` ref <hidden>
-|   | |     ` ref <hidden>
-|   | ` rec <hidden>
-|   ` pure (\x_0 -> x_0)
-+ let <hidden>
-| ` <|>
-|   + <*>
-|   | + <*>
-|   | | + pure (\x_0 -> \x_1 -> \x_2 -> x_0 (x_1 x_2))
-|   | | ` <*>
-|   | |   + <*>
-|   | |   | + pure (\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1)
-|   | |   | ` pure (\x_0 -> \x_1 -> x_0)
-|   | |   ` <|>
-|   | |     + <|>
-|   | |     | + <|>
-|   | |     | | + <*>
-|   | |     | | | + <*>
-|   | |     | | | | + <*>
-|   | |     | | | | | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     | | | | | ` pure (\x_0 -> x_0)
-|   | |     | | | | ` try
-|   | |     | | | |   ` <*>
-|   | |     | | | |     + <*>
-|   | |     | | | |     | + pure (GHC.Types.:)
-|   | |     | | | |     | ` <*>
-|   | |     | | | |     |   + <*>
-|   | |     | | | |     |   | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     | | | |     |   | ` pure 'i'
-|   | |     | | | |     |   ` satisfy
-|   | |     | | | |     ` <*>
-|   | |     | | | |       + <*>
-|   | |     | | | |       | + pure (GHC.Types.:)
-|   | |     | | | |       | ` <*>
-|   | |     | | | |       |   + <*>
-|   | |     | | | |       |   | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     | | | |       |   | ` pure 'f'
-|   | |     | | | |       |   ` satisfy
-|   | |     | | | |       ` pure GHC.Types.[]
-|   | |     | | | ` ref <hidden>
-|   | |     | | ` <*>
-|   | |     | |   + <*>
-|   | |     | |   | + <*>
-|   | |     | |   | | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     | |   | | ` pure (\x_0 -> x_0)
-|   | |     | |   | ` <*>
-|   | |     | |   |   + <*>
-|   | |     | |   |   | + <*>
-|   | |     | |   |   | | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     | |   |   | | ` pure (\x_0 -> x_0)
-|   | |     | |   |   | ` <*>
-|   | |     | |   |   |   + <*>
-|   | |     | |   |   |   | + <*>
-|   | |     | |   |   |   | | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     | |   |   |   | | ` pure (\x_0 -> x_0)
-|   | |     | |   |   |   | ` try
-|   | |     | |   |   |   |   ` <*>
-|   | |     | |   |   |   |     + <*>
-|   | |     | |   |   |   |     | + pure (GHC.Types.:)
-|   | |     | |   |   |   |     | ` <*>
-|   | |     | |   |   |   |     |   + <*>
-|   | |     | |   |   |   |     |   | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     | |   |   |   |     |   | ` pure 'w'
-|   | |     | |   |   |   |     |   ` satisfy
-|   | |     | |   |   |   |     ` <*>
-|   | |     | |   |   |   |       + <*>
-|   | |     | |   |   |   |       | + pure (GHC.Types.:)
-|   | |     | |   |   |   |       | ` <*>
-|   | |     | |   |   |   |       |   + <*>
-|   | |     | |   |   |   |       |   | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     | |   |   |   |       |   | ` pure 'h'
-|   | |     | |   |   |   |       |   ` satisfy
-|   | |     | |   |   |   |       ` <*>
-|   | |     | |   |   |   |         + <*>
-|   | |     | |   |   |   |         | + pure (GHC.Types.:)
-|   | |     | |   |   |   |         | ` <*>
-|   | |     | |   |   |   |         |   + <*>
-|   | |     | |   |   |   |         |   | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     | |   |   |   |         |   | ` pure 'i'
-|   | |     | |   |   |   |         |   ` satisfy
-|   | |     | |   |   |   |         ` <*>
-|   | |     | |   |   |   |           + <*>
-|   | |     | |   |   |   |           | + pure (GHC.Types.:)
-|   | |     | |   |   |   |           | ` <*>
-|   | |     | |   |   |   |           |   + <*>
-|   | |     | |   |   |   |           |   | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     | |   |   |   |           |   | ` pure 'l'
-|   | |     | |   |   |   |           |   ` satisfy
-|   | |     | |   |   |   |           ` <*>
-|   | |     | |   |   |   |             + <*>
-|   | |     | |   |   |   |             | + pure (GHC.Types.:)
-|   | |     | |   |   |   |             | ` <*>
-|   | |     | |   |   |   |             |   + <*>
-|   | |     | |   |   |   |             |   | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     | |   |   |   |             |   | ` pure 'e'
-|   | |     | |   |   |   |             |   ` satisfy
-|   | |     | |   |   |   |             ` pure GHC.Types.[]
-|   | |     | |   |   |   ` ref <hidden>
-|   | |     | |   |   ` ref <hidden>
-|   | |     | |   ` rec <hidden>
-|   | |     | ` try
-|   | |     |   ` <*>
-|   | |     |     + <*>
-|   | |     |     | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |     | ` <*>
-|   | |     |     |   + <*>
-|   | |     |     |   | + <*>
-|   | |     |     |   | | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |     |   | | ` pure (\x_0 -> x_0)
-|   | |     |     |   | ` <*>
-|   | |     |     |   |   + <*>
-|   | |     |     |   |   | + <*>
-|   | |     |     |   |   | | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |     |   |   | | ` pure (\x_0 -> x_0)
-|   | |     |     |   |   | ` <*>
-|   | |     |     |   |   |   + <*>
-|   | |     |     |   |   |   | + <*>
-|   | |     |     |   |   |   | | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |     |   |   |   | | ` pure (\x_0 -> x_0)
-|   | |     |     |   |   |   | ` <|>
-|   | |     |     |   |   |   |   + <*>
-|   | |     |     |   |   |   |   | + <*>
-|   | |     |     |   |   |   |   | | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |     |   |   |   |   | | ` pure GHC.Tuple.()
-|   | |     |     |   |   |   |   | ` <*>
-|   | |     |     |   |   |   |   |   + <*>
-|   | |     |     |   |   |   |   |   | + <*>
-|   | |     |     |   |   |   |   |   | | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |     |   |   |   |   |   | | ` pure (\x_0 -> x_0)
-|   | |     |     |   |   |   |   |   | ` try
-|   | |     |     |   |   |   |   |   |   ` <*>
-|   | |     |     |   |   |   |   |   |     + <*>
-|   | |     |     |   |   |   |   |   |     | + pure (GHC.Types.:)
-|   | |     |     |   |   |   |   |   |     | ` <*>
-|   | |     |     |   |   |   |   |   |     |   + <*>
-|   | |     |     |   |   |   |   |   |     |   | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |     |   |   |   |   |   |     |   | ` pure 'v'
-|   | |     |     |   |   |   |   |   |     |   ` satisfy
-|   | |     |     |   |   |   |   |   |     ` <*>
-|   | |     |     |   |   |   |   |   |       + <*>
-|   | |     |     |   |   |   |   |   |       | + pure (GHC.Types.:)
-|   | |     |     |   |   |   |   |   |       | ` <*>
-|   | |     |     |   |   |   |   |   |       |   + <*>
-|   | |     |     |   |   |   |   |   |       |   | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |     |   |   |   |   |   |       |   | ` pure 'a'
-|   | |     |     |   |   |   |   |   |       |   ` satisfy
-|   | |     |     |   |   |   |   |   |       ` <*>
-|   | |     |     |   |   |   |   |   |         + <*>
-|   | |     |     |   |   |   |   |   |         | + pure (GHC.Types.:)
-|   | |     |     |   |   |   |   |   |         | ` <*>
-|   | |     |     |   |   |   |   |   |         |   + <*>
-|   | |     |     |   |   |   |   |   |         |   | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |     |   |   |   |   |   |         |   | ` pure 'r'
-|   | |     |     |   |   |   |   |   |         |   ` satisfy
-|   | |     |     |   |   |   |   |   |         ` pure GHC.Types.[]
-|   | |     |     |   |   |   |   |   ` ref <hidden>
-|   | |     |     |   |   |   |   ` ref <hidden>
-|   | |     |     |   |   |   ` <*>
-|   | |     |     |   |   |     + <*>
-|   | |     |     |   |   |     | + <*>
-|   | |     |     |   |   |     | | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |     |   |   |     | | ` pure (\x_0 -> x_0)
-|   | |     |     |   |   |     | ` ref <hidden>
-|   | |     |     |   |   |     ` <*>
-|   | |     |     |   |   |       + <*>
-|   | |     |     |   |   |       | + <*>
-|   | |     |     |   |   |       | | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |     |   |   |       | | ` pure (\x_0 -> x_0)
-|   | |     |     |   |   |       | ` <*>
-|   | |     |     |   |   |       |   + <*>
-|   | |     |     |   |   |       |   | + pure ((\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1) (\x_3 -> \x_4 -> x_3 x_4))
-|   | |     |     |   |   |       |   | ` ref <hidden>
-|   | |     |     |   |   |       |   ` ref <hidden>
-|   | |     |     |   |   |       ` ref <hidden>
-|   | |     |     |   |   ` <*>
-|   | |     |     |   |     + <*>
-|   | |     |     |   |     | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |     |   |     | ` <*>
-|   | |     |     |   |     |   + <*>
-|   | |     |     |   |     |   | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |     |   |     |   | ` pure '='
-|   | |     |     |   |     |   ` satisfy
-|   | |     |     |   |     ` ref <hidden>
-|   | |     |     |   ` <*>
-|   | |     |     |     + <*>
-|   | |     |     |     | + <*>
-|   | |     |     |     | | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |     |     | | ` pure (\x_0 -> x_0)
-|   | |     |     |     | ` ref <hidden>
-|   | |     |     |     ` <*>
-|   | |     |     |       + <*>
-|   | |     |     |       | + <*>
-|   | |     |     |       | | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     |     |       | | ` pure (\x_0 -> x_0)
-|   | |     |     |       | ` <*>
-|   | |     |     |       |   + <*>
-|   | |     |     |       |   | + pure ((\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1) (\x_3 -> \x_4 -> x_3 x_4))
-|   | |     |     |       |   | ` 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_0 (x_1 x_2))
-|   | | ` <*>
-|   | |   + <*>
-|   | |   | + pure (\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1)
-|   | |   | ` pure (\x_0 -> \x_1 -> x_0)
-|   | |   ` ref <hidden>
-|   | ` rec <hidden>
-|   ` pure (\x_0 -> x_0)
-+ let <hidden>
-| ` <|>
-|   + <*>
-|   | + <*>
-|   | | + pure (\x_0 -> \x_1 -> \x_2 -> x_0 (x_1 x_2))
-|   | | ` <*>
-|   | |   + <*>
-|   | |   | + pure (\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1)
-|   | |   | ` pure (\x_0 -> \x_1 -> x_0)
-|   | |   ` ref <hidden>
-|   | ` rec <hidden>
-|   ` pure (\x_0 -> x_0)
-+ let <hidden>
-| ` <|>
-|   + <*>
-|   | + <*>
-|   | | + pure (\x_0 -> \x_1 -> \x_2 -> x_0 (x_1 x_2))
-|   | | ` <*>
-|   | |   + <*>
-|   | |   | + pure (\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1)
-|   | |   | ` pure (\x_0 -> \x_1 -> x_0)
-|   | |   ` satisfy
-|   | ` rec <hidden>
-|   ` pure (\x_0 -> x_0)
-+ let <hidden>
-| ` <|>
-|   + <*>
-|   | + <*>
-|   | | + pure (\x_0 -> \x_1 -> \x_2 -> x_0 (x_1 x_2))
-|   | | ` <*>
-|   | |   + ref <hidden>
-|   | |   ` <*>
-|   | |     + <*>
-|   | |     | + <*>
-|   | |     | | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     | | ` pure (\x_0 -> x_0)
-|   | |     | ` ref <hidden>
-|   | |     ` rec <hidden>
-|   | ` rec <hidden>
-|   ` pure (\x_0 -> x_0)
-+ let <hidden>
-| ` <|>
-|   + <*>
-|   | + <*>
-|   | | + pure (\x_0 -> \x_1 -> \x_2 -> x_0 (x_1 x_2))
-|   | | ` <*>
-|   | |   + ref <hidden>
-|   | |   ` <*>
-|   | |     + <*>
-|   | |     | + <*>
-|   | |     | | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     | | ` pure (\x_0 -> x_0)
-|   | |     | ` ref <hidden>
-|   | |     ` ref <hidden>
-|   | ` rec <hidden>
-|   ` pure (\x_0 -> x_0)
-+ let <hidden>
-| ` <|>
-|   + <*>
-|   | + <*>
-|   | | + pure (\x_0 -> \x_1 -> \x_2 -> x_0 (x_1 x_2))
-|   | | ` <*>
-|   | |   + ref <hidden>
-|   | |   ` <*>
-|   | |     + <*>
-|   | |     | + <*>
-|   | |     | | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     | | ` pure (\x_0 -> x_0)
-|   | |     | ` ref <hidden>
-|   | |     ` ref <hidden>
-|   | ` rec <hidden>
-|   ` pure (\x_0 -> x_0)
-+ let <hidden>
-| ` <|>
-|   + <*>
-|   | + <*>
-|   | | + pure (\x_0 -> \x_1 -> \x_2 -> x_0 (x_1 x_2))
-|   | | ` <*>
-|   | |   + ref <hidden>
-|   | |   ` <*>
-|   | |     + <*>
-|   | |     | + <*>
-|   | |     | | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     | | ` pure (\x_0 -> x_0)
-|   | |     | ` ref <hidden>
-|   | |     ` ref <hidden>
-|   | ` rec <hidden>
-|   ` pure (\x_0 -> x_0)
-+ let <hidden>
-| ` <|>
-|   + <*>
-|   | + <*>
-|   | | + pure (\x_0 -> \x_1 -> x_0)
-|   | | ` pure GHC.Tuple.()
-|   | ` <*>
-|   |   + <*>
-|   |   | + <*>
-|   |   | | + pure (\x_0 -> \x_1 -> x_0)
-|   |   | | ` pure (\x_0 -> x_0)
-|   |   | ` ref <hidden>
-|   |   ` <*>
-|   |     + <*>
-|   |     | + <*>
-|   |     | | + pure (\x_0 -> \x_1 -> x_0)
-|   |     | | ` pure (\x_0 -> x_0)
-|   |     | ` <*>
-|   |     |   + <*>
-|   |     |   | + pure ((\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1) (\x_3 -> \x_4 -> x_3 x_4))
-|   |     |   | ` ref <hidden>
-|   |     |   ` ref <hidden>
-|   |     ` ref <hidden>
-|   ` ref <hidden>
-+ let <hidden>
-| ` <|>
-|   + <|>
-|   | + <*>
-|   | | + <*>
-|   | | | + <*>
-|   | | | | + pure (\x_0 -> \x_1 -> x_0)
-|   | | | | ` pure (\x_0 -> x_0)
-|   | | | ` <|>
-|   | | |   + <*>
-|   | | |   | + <*>
-|   | | |   | | + pure (\x_0 -> \x_1 -> x_0)
-|   | | |   | | ` pure '0'
-|   | | |   | ` satisfy
-|   | | |   ` <*>
-|   | | |     + <*>
-|   | | |     | + pure (\x_0 -> \x_1 -> x_0)
-|   | | |     | ` pure '1'
-|   | | |     ` satisfy
-|   | | ` ref <hidden>
-|   | ` <*>
-|   |   + <*>
-|   |   | + pure (\x_0 -> \x_1 -> x_0)
-|   |   | ` <*>
-|   |   |   + <*>
-|   |   |   | + <*>
-|   |   |   | | + pure (\x_0 -> \x_1 -> x_0)
-|   |   |   | | ` pure (\x_0 -> x_0)
-|   |   |   | ` <*>
-|   |   |   |   + <*>
-|   |   |   |   | + pure (\x_0 -> \x_1 -> x_0)
-|   |   |   |   | ` pure '\''
-|   |   |   |   ` satisfy
-|   |   |   ` <|>
-|   |   |     + <*>
-|   |   |     | + <*>
-|   |   |     | | + <*>
-|   |   |     | | | + pure (\x_0 -> \x_1 -> x_0)
-|   |   |     | | | ` pure (\x_0 -> x_0)
-|   |   |     | | ` satisfy
-|   |   |     | ` ref <hidden>
-|   |   |     ` <*>
-|   |   |       + <*>
-|   |   |       | + <*>
-|   |   |       | | + pure (\x_0 -> \x_1 -> x_0)
-|   |   |       | | ` pure (\x_0 -> x_0)
-|   |   |       | ` <*>
-|   |   |       |   + <*>
-|   |   |       |   | + pure (\x_0 -> \x_1 -> x_0)
-|   |   |       |   | ` pure '\\'
-|   |   |       |   ` satisfy
-|   |   |       ` <*>
-|   |   |         + <*>
-|   |   |         | + <*>
-|   |   |         | | + pure (\x_0 -> \x_1 -> x_0)
-|   |   |         | | ` pure (\x_0 -> x_0)
-|   |   |         | ` satisfy
-|   |   |         ` ref <hidden>
-|   |   ` <*>
-|   |     + <*>
-|   |     | + pure (\x_0 -> \x_1 -> x_0)
-|   |     | ` <*>
-|   |     |   + <*>
-|   |     |   | + pure (\x_0 -> \x_1 -> x_0)
-|   |     |   | ` pure '\''
-|   |     |   ` satisfy
-|   |     ` ref <hidden>
-|   ` <*>
-|     + <*>
-|     | + <*>
-|     | | + pure (\x_0 -> \x_1 -> x_0)
-|     | | ` pure (\x_0 -> x_0)
-|     | ` ref <hidden>
-|     ` <|>
-|       + <*>
-|       | + <*>
-|       | | + pure (\x_0 -> \x_1 -> x_0)
-|       | | ` pure GHC.Tuple.()
-|       | ` <|>
-|       |   + <*>
-|       |   | + <*>
-|       |   | | + pure (\x_0 -> \x_1 -> x_0)
-|       |   | | ` <*>
-|       |   | |   + <*>
-|       |   | |   | + <*>
-|       |   | |   | | + pure (\x_0 -> \x_1 -> x_0)
-|       |   | |   | | ` pure (\x_0 -> x_0)
-|       |   | |   | ` ref <hidden>
-|       |   | |   ` <|>
-|       |   | |     + <*>
-|       |   | |     | + <*>
-|       |   | |     | | + pure (\x_0 -> \x_1 -> x_0)
-|       |   | |     | | ` pure GHC.Tuple.()
-|       |   | |     | ` <*>
-|       |   | |     |   + <*>
-|       |   | |     |   | + <*>
-|       |   | |     |   | | + pure (\x_0 -> \x_1 -> x_0)
-|       |   | |     |   | | ` pure (\x_0 -> x_0)
-|       |   | |     |   | ` rec <hidden>
-|       |   | |     |   ` <*>
-|       |   | |     |     + <*>
-|       |   | |     |     | + <*>
-|       |   | |     |     | | + pure (\x_0 -> \x_1 -> x_0)
-|       |   | |     |     | | ` pure (\x_0 -> x_0)
-|       |   | |     |     | ` <*>
-|       |   | |     |     |   + <*>
-|       |   | |     |     |   | + pure ((\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1) (\x_3 -> \x_4 -> x_3 x_4))
-|       |   | |     |     |   | ` ref <hidden>
-|       |   | |     |     |   ` ref <hidden>
-|       |   | |     |     ` ref <hidden>
-|       |   | |     ` ref <hidden>
-|       |   | ` ref <hidden>
-|       |   ` ref <hidden>
-|       ` ref <hidden>
-+ let <hidden>
-| ` pure GHC.Tuple.()
-+ let <hidden>
-| ` pure GHC.Tuple.()
-+ let <hidden>
-| ` satisfy
-` <*>
-  + pure GHC.Show.show
-  ` <*>
-    + <*>
-    | + pure (\x_0 -> \x_1 -> x_0)
-    | ` <*>
-    |   + <*>
-    |   | + <*>
-    |   | | + pure (\x_0 -> \x_1 -> x_0)
-    |   | | ` pure (\x_0 -> x_0)
-    |   | ` ref <hidden>
-    |   ` <*>
-    |     + <*>
-    |     | + <*>
-    |     | | + pure (\x_0 -> \x_1 -> x_0)
-    |     | | ` pure (\x_0 -> x_0)
-    |     | ` <*>
-    |     |   + <*>
-    |     |   | + pure ((\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1) (\x_3 -> \x_4 -> x_3 x_4))
-    |     |   | ` ref <hidden>
-    |     |   ` ref <hidden>
-    |     ` ref <hidden>
-    ` eof
diff --git a/test/Golden/Grammar/ViewGrammar/G15.expected.txt b/test/Golden/Grammar/ViewGrammar/G15.expected.txt
deleted file mode 100644
--- a/test/Golden/Grammar/ViewGrammar/G15.expected.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-lets
-` <*>
-  + pure GHC.Show.show
-  ` <*>
-    + <*>
-    | + pure (\x_0 -> \x_1 -> x_0)
-    | ` <|>
-    |   + <*>
-    |   | + <*>
-    |   | | + pure (\x_0 -> \x_1 -> x_0)
-    |   | | ` pure 'a'
-    |   | ` satisfy
-    |   ` <*>
-    |     + <*>
-    |     | + pure (\x_0 -> \x_1 -> x_0)
-    |     | ` pure 'b'
-    |     ` satisfy
-    ` <*>
-      + <*>
-      | + pure (\x_0 -> \x_1 -> x_0)
-      | ` pure 'c'
-      ` satisfy
diff --git a/test/Golden/Grammar/ViewGrammar/G16.expected.txt b/test/Golden/Grammar/ViewGrammar/G16.expected.txt
deleted file mode 100644
--- a/test/Golden/Grammar/ViewGrammar/G16.expected.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-lets
-` <*>
-  + pure GHC.Show.show
-  ` <*>
-    + <*>
-    | + pure (\x_0 -> \x_1 -> x_0)
-    | ` <|>
-    |   + <|>
-    |   | + <*>
-    |   | | + <*>
-    |   | | | + pure (\x_0 -> \x_1 -> x_0)
-    |   | | | ` pure 'a'
-    |   | | ` satisfy
-    |   | ` <*>
-    |   |   + <*>
-    |   |   | + pure (\x_0 -> \x_1 -> x_0)
-    |   |   | ` pure 'b'
-    |   |   ` satisfy
-    |   ` <*>
-    |     + <*>
-    |     | + pure (\x_0 -> \x_1 -> x_0)
-    |     | ` pure 'c'
-    |     ` satisfy
-    ` <*>
-      + <*>
-      | + pure (\x_0 -> \x_1 -> x_0)
-      | ` pure 'd'
-      ` satisfy
diff --git a/test/Golden/Grammar/ViewGrammar/G2.expected.txt b/test/Golden/Grammar/ViewGrammar/G2.expected.txt
deleted file mode 100644
--- a/test/Golden/Grammar/ViewGrammar/G2.expected.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-lets
-` <*>
-  + pure GHC.Show.show
-  ` try
-    ` <*>
-      + <*>
-      | + pure (GHC.Types.:)
-      | ` <*>
-      |   + <*>
-      |   | + pure (\x_0 -> \x_1 -> x_0)
-      |   | ` pure 'a'
-      |   ` satisfy
-      ` <*>
-        + <*>
-        | + pure (GHC.Types.:)
-        | ` <*>
-        |   + <*>
-        |   | + pure (\x_0 -> \x_1 -> x_0)
-        |   | ` pure 'b'
-        |   ` satisfy
-        ` <*>
-          + <*>
-          | + pure (GHC.Types.:)
-          | ` <*>
-          |   + <*>
-          |   | + pure (\x_0 -> \x_1 -> x_0)
-          |   | ` pure 'c'
-          |   ` satisfy
-          ` pure GHC.Types.[]
diff --git a/test/Golden/Grammar/ViewGrammar/G3.expected.txt b/test/Golden/Grammar/ViewGrammar/G3.expected.txt
deleted file mode 100644
--- a/test/Golden/Grammar/ViewGrammar/G3.expected.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-lets
-+ let <hidden>
-| ` <|>
-|   + <*>
-|   | + <*>
-|   | | + pure (\x_0 -> \x_1 -> \x_2 -> x_0 (x_1 x_2))
-|   | | ` <*>
-|   | |   + pure (GHC.Types.:)
-|   | |   ` <*>
-|   | |     + <*>
-|   | |     | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     | ` pure 'a'
-|   | |     ` satisfy
-|   | ` rec <hidden>
-|   ` pure (\x_0 -> x_0)
-` <*>
-  + pure GHC.Show.show
-  ` <*>
-    + ref <hidden>
-    ` pure GHC.Types.[]
diff --git a/test/Golden/Grammar/ViewGrammar/G4.expected.txt b/test/Golden/Grammar/ViewGrammar/G4.expected.txt
deleted file mode 100644
--- a/test/Golden/Grammar/ViewGrammar/G4.expected.txt
+++ /dev/null
@@ -1,55 +0,0 @@
-lets
-+ let <hidden>
-| ` <|>
-|   + <*>
-|   | + <*>
-|   | | + pure (\x_0 -> \x_1 -> \x_2 -> x_0 (x_1 x_2))
-|   | | ` <*>
-|   | |   + pure (GHC.Types.:)
-|   | |   ` ref <hidden>
-|   | ` rec <hidden>
-|   ` pure (\x_0 -> x_0)
-+ let <hidden>
-| ` try
-|   ` <*>
-|     + <*>
-|     | + pure (GHC.Types.:)
-|     | ` <*>
-|     |   + <*>
-|     |   | + pure (\x_0 -> \x_1 -> x_0)
-|     |   | ` pure 'a'
-|     |   ` satisfy
-|     ` <*>
-|       + <*>
-|       | + pure (GHC.Types.:)
-|       | ` <*>
-|       |   + <*>
-|       |   | + pure (\x_0 -> \x_1 -> x_0)
-|       |   | ` pure 'b'
-|       |   ` satisfy
-|       ` <*>
-|         + <*>
-|         | + pure (GHC.Types.:)
-|         | ` <*>
-|         |   + <*>
-|         |   | + pure (\x_0 -> \x_1 -> x_0)
-|         |   | ` pure 'c'
-|         |   ` satisfy
-|         ` <*>
-|           + <*>
-|           | + pure (GHC.Types.:)
-|           | ` <*>
-|           |   + <*>
-|           |   | + pure (\x_0 -> \x_1 -> x_0)
-|           |   | ` pure 'd'
-|           |   ` satisfy
-|           ` pure GHC.Types.[]
-` <*>
-  + pure GHC.Show.show
-  ` <*>
-    + <*>
-    | + pure (GHC.Types.:)
-    | ` ref <hidden>
-    ` <*>
-      + ref <hidden>
-      ` pure GHC.Types.[]
diff --git a/test/Golden/Grammar/ViewGrammar/G5.expected.txt b/test/Golden/Grammar/ViewGrammar/G5.expected.txt
deleted file mode 100644
--- a/test/Golden/Grammar/ViewGrammar/G5.expected.txt
+++ /dev/null
@@ -1,59 +0,0 @@
-lets
-+ let <hidden>
-| ` <|>
-|   + <*>
-|   | + <*>
-|   | | + pure (\x_0 -> \x_1 -> \x_2 -> x_0 (x_1 x_2))
-|   | | ` <*>
-|   | |   + pure (GHC.Types.:)
-|   | |   ` ref <hidden>
-|   | ` rec <hidden>
-|   ` pure (\x_0 -> x_0)
-+ let <hidden>
-| ` try
-|   ` <*>
-|     + <*>
-|     | + pure (GHC.Types.:)
-|     | ` <*>
-|     |   + <*>
-|     |   | + pure (\x_0 -> \x_1 -> x_0)
-|     |   | ` pure 'a'
-|     |   ` satisfy
-|     ` <*>
-|       + <*>
-|       | + pure (GHC.Types.:)
-|       | ` <*>
-|       |   + <*>
-|       |   | + pure (\x_0 -> \x_1 -> x_0)
-|       |   | ` pure 'b'
-|       |   ` satisfy
-|       ` <*>
-|         + <*>
-|         | + pure (GHC.Types.:)
-|         | ` <*>
-|         |   + <*>
-|         |   | + pure (\x_0 -> \x_1 -> x_0)
-|         |   | ` pure 'c'
-|         |   ` satisfy
-|         ` <*>
-|           + <*>
-|           | + pure (GHC.Types.:)
-|           | ` <*>
-|           |   + <*>
-|           |   | + pure (\x_0 -> \x_1 -> x_0)
-|           |   | ` pure 'd'
-|           |   ` satisfy
-|           ` pure GHC.Types.[]
-` <*>
-  + pure GHC.Show.show
-  ` <*>
-    + <*>
-    | + pure (\x_0 -> \x_1 -> x_0)
-    | ` <*>
-    |   + <*>
-    |   | + pure (GHC.Types.:)
-    |   | ` ref <hidden>
-    |   ` <*>
-    |     + ref <hidden>
-    |     ` pure GHC.Types.[]
-    ` eof
diff --git a/test/Golden/Grammar/ViewGrammar/G6.expected.txt b/test/Golden/Grammar/ViewGrammar/G6.expected.txt
deleted file mode 100644
--- a/test/Golden/Grammar/ViewGrammar/G6.expected.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-lets
-` <*>
-  + pure GHC.Show.show
-  ` <|>
-    + <*>
-    | + <*>
-    | | + pure (GHC.Types.:)
-    | | ` <*>
-    | |   + <*>
-    | |   | + pure (\x_0 -> \x_1 -> x_0)
-    | |   | ` pure 'a'
-    | |   ` satisfy
-    | ` <*>
-    |   + <*>
-    |   | + pure (GHC.Types.:)
-    |   | ` <*>
-    |   |   + <*>
-    |   |   | + pure (\x_0 -> \x_1 -> x_0)
-    |   |   | ` pure 'a'
-    |   |   ` satisfy
-    |   ` pure GHC.Types.[]
-    ` <*>
-      + <*>
-      | + pure (GHC.Types.:)
-      | ` <*>
-      |   + <*>
-      |   | + pure (\x_0 -> \x_1 -> x_0)
-      |   | ` pure 'a'
-      |   ` satisfy
-      ` <*>
-        + <*>
-        | + pure (GHC.Types.:)
-        | ` <*>
-        |   + <*>
-        |   | + pure (\x_0 -> \x_1 -> x_0)
-        |   | ` pure 'b'
-        |   ` satisfy
-        ` pure GHC.Types.[]
diff --git a/test/Golden/Grammar/ViewGrammar/G7.expected.txt b/test/Golden/Grammar/ViewGrammar/G7.expected.txt
deleted file mode 100644
--- a/test/Golden/Grammar/ViewGrammar/G7.expected.txt
+++ /dev/null
@@ -1,40 +0,0 @@
-lets
-` <*>
-  + pure GHC.Show.show
-  ` <|>
-    + try
-    | ` <*>
-    |   + <*>
-    |   | + pure (GHC.Types.:)
-    |   | ` <*>
-    |   |   + <*>
-    |   |   | + pure (\x_0 -> \x_1 -> x_0)
-    |   |   | ` pure 'a'
-    |   |   ` satisfy
-    |   ` <*>
-    |     + <*>
-    |     | + pure (GHC.Types.:)
-    |     | ` <*>
-    |     |   + <*>
-    |     |   | + pure (\x_0 -> \x_1 -> x_0)
-    |     |   | ` pure 'a'
-    |     |   ` satisfy
-    |     ` pure GHC.Types.[]
-    ` try
-      ` <*>
-        + <*>
-        | + pure (GHC.Types.:)
-        | ` <*>
-        |   + <*>
-        |   | + pure (\x_0 -> \x_1 -> x_0)
-        |   | ` pure 'a'
-        |   ` satisfy
-        ` <*>
-          + <*>
-          | + pure (GHC.Types.:)
-          | ` <*>
-          |   + <*>
-          |   | + pure (\x_0 -> \x_1 -> x_0)
-          |   | ` pure 'b'
-          |   ` satisfy
-          ` pure GHC.Types.[]
diff --git a/test/Golden/Grammar/ViewGrammar/G8.expected.txt b/test/Golden/Grammar/ViewGrammar/G8.expected.txt
deleted file mode 100644
--- a/test/Golden/Grammar/ViewGrammar/G8.expected.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-lets
-+ let <hidden>
-| ` <|>
-|   + <*>
-|   | + <*>
-|   | | + pure (\x_0 -> \x_1 -> \x_2 -> x_0 (x_1 x_2))
-|   | | ` <*>
-|   | |   + pure (GHC.Types.:)
-|   | |   ` <*>
-|   | |     + <*>
-|   | |     | + pure (\x_0 -> \x_1 -> x_0)
-|   | |     | ` pure 'r'
-|   | |     ` satisfy
-|   | ` rec <hidden>
-|   ` pure (\x_0 -> x_0)
-` <*>
-  + pure GHC.Show.show
-  ` <*>
-    + <*>
-    | + pure (\x_0 -> \x_1 -> x_0)
-    | ` <*>
-    |   + ref <hidden>
-    |   ` pure GHC.Types.[]
-    ` eof
diff --git a/test/Golden/Grammar/ViewGrammar/G9.expected.txt b/test/Golden/Grammar/ViewGrammar/G9.expected.txt
deleted file mode 100644
--- a/test/Golden/Grammar/ViewGrammar/G9.expected.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-lets
-` <*>
-  + pure GHC.Show.show
-  ` eof
diff --git a/test/Golden/Machine.hs b/test/Golden/Machine.hs
deleted file mode 100644
--- a/test/Golden/Machine.hs
+++ /dev/null
@@ -1,41 +0,0 @@
-{-# LANGUAGE DataKinds #-} -- For using P.viewMachine
-{-# LANGUAGE FlexibleContexts #-} -- For machines
-{-# LANGUAGE GADTs #-} -- For machines
-{-# LANGUAGE TypeApplications #-} -- For P.viewMachine
-module Golden.Machine where
-
-import Data.Bool (Bool(..))
-import Data.Char (Char)
-import Control.Monad (Monad(..))
-import Data.Int (Int)
-import Data.Function (($))
-import Data.Functor ((<$>))
-import Data.Semigroup (Semigroup(..))
-import Data.String (String, IsString(..))
-import Data.Text (Text)
-import System.IO (IO)
-import Test.Tasty
-import Test.Tasty.Golden
-import Text.Show (Show(..))
-import qualified Data.List as List
-
-import Golden.Utils
-import Grammar
-import qualified Symantic.Parser as P
-
-goldens :: TestTree
-goldens = testGroup "Machine" $
-  (\f -> List.zipWith f (machines @Text) [1::Int ..]) $ \mach g ->
-  let machineFile = getGoldenDir $ "Machine/G"<>show g<>".expected.txt" in
-  goldenVsStringDiff ("G"<>show g) goldenDiff machineFile $ do
-    resetTHNameCounter
-    m <- mach
-    return $ fromString $ show $
-      P.viewMachine @'False m
-
-machines ::
-  P.InputToken inp ~ Char =>
-  P.Cursorable (P.Cursor inp) =>
-  P.Machinable (P.InputToken inp) repr =>
-  [IO (repr inp '[] String)]
-machines = P.optimizeMachine <$> grammars
diff --git a/test/Golden/Machine/G1.expected.txt b/test/Golden/Machine/G1.expected.txt
deleted file mode 100644
--- a/test/Golden/Machine/G1.expected.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-pushValue GHC.Show.show
-  minReads=(Right 1)
-  mayRaise=[ExceptionFailure]
-pushValue (\x_0 -> \x_1 -> x_0)
-  minReads=(Right 1)
-  mayRaise=[ExceptionFailure]
-pushValue 'a'
-  minReads=(Right 1)
-  mayRaise=[ExceptionFailure]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 1)
-  mayRaise=[ExceptionFailure]
-read ((GHC.Classes.==) 'a')
-  minReads=(Right 1)
-  mayRaise=[ExceptionFailure]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 0)
-  mayRaise=[]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 0)
-  mayRaise=[]
-ret
-  minReads=(Right 0)
-  mayRaise=[]
diff --git a/test/Golden/Machine/G10.expected.txt b/test/Golden/Machine/G10.expected.txt
deleted file mode 100644
--- a/test/Golden/Machine/G10.expected.txt
+++ /dev/null
@@ -1,72 +0,0 @@
-pushValue GHC.Show.show
-  minReads=(Right 1)
-  mayRaise=[ExceptionFailure]
-join <hidden>
-  minReads=(Right 0)
-  mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| ret
-|   minReads=(Right 0)
-|   mayRaise=[]
-catch ExceptionFailure
-  minReads=(Right 1)
-  mayRaise=[ExceptionFailure]
-| <ok>
-| | pushValue (\x_0 -> \x_1 -> x_0)
-| |   minReads=(Right 1)
-| |   mayRaise=[ExceptionFailure]
-| | pushValue 'a'
-| |   minReads=(Right 1)
-| |   mayRaise=[ExceptionFailure]
-| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| |   minReads=(Right 1)
-| |   mayRaise=[ExceptionFailure]
-| | read ((GHC.Classes.==) 'a')
-| |   minReads=(Right 1)
-| |   mayRaise=[ExceptionFailure]
-| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| |   minReads=(Right 0)
-| |   mayRaise=[]
-| | commit ExceptionFailure
-| |   minReads=(Right 0)
-| |   mayRaise=[]
-| | refJoin <hidden>
-| |   minReads=(Right 0)
-| |   mayRaise=[]
-| <ko>
-| | pushInput
-| |   minReads=(Right 1)
-| |   mayRaise=[ExceptionFailure]
-| | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| |                                                                j_1
-| |                                                                _) -> i_0 GHC.Classes.== j_1)
-| |   minReads=(Right 1)
-| |   mayRaise=[ExceptionFailure]
-| | choicesBranch [\x_0 -> x_0]
-| |   minReads=(Right 1)
-| |   mayRaise=[ExceptionFailure]
-| | | <branch>
-| | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | |   minReads=(Right 1)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | pushValue 'b'
-| | | |   minReads=(Right 1)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | |   minReads=(Right 1)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | read ((GHC.Classes.==) 'b')
-| | | |   minReads=(Right 1)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | refJoin <hidden>
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | <default>
-| | | | fail []
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
diff --git a/test/Golden/Machine/G11.expected.txt b/test/Golden/Machine/G11.expected.txt
deleted file mode 100644
--- a/test/Golden/Machine/G11.expected.txt
+++ /dev/null
@@ -1,111 +0,0 @@
-let <hidden>
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-| catch ExceptionFailure
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| | <ok>
-| | | pushValue (\x_0 -> \x_1 -> \x_2 -> x_0 (x_1 x_2))
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (GHC.Types.:)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue 'a'
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | read ((GHC.Classes.==) 'a')
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | commit ExceptionFailure
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | ret
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | <ko>
-| | | pushInput
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| | |                                                                j_1
-| | |                                                                _) -> i_0 GHC.Classes.== j_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | choicesBranch [\x_0 -> x_0]
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | | <branch>
-| | | | | pushValue (\x_0 -> x_0)
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | | ret
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | <default>
-| | | | | fail []
-| | | | |   minReads=(Left ExceptionFailure)
-| | | | |   mayRaise=[ExceptionFailure]
-pushValue GHC.Show.show
-  minReads=(Right 1)
-  mayRaise=[ExceptionFailure]
-pushValue (\x_0 -> \x_1 -> x_0)
-  minReads=(Right 1)
-  mayRaise=[ExceptionFailure]
-call <hidden>
-  minReads=(Right 1)
-  mayRaise=[ExceptionFailure]
-pushValue GHC.Types.[]
-  minReads=(Right 1)
-  mayRaise=[ExceptionFailure]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 1)
-  mayRaise=[ExceptionFailure]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 1)
-  mayRaise=[ExceptionFailure]
-pushValue (\x_0 -> \x_1 -> x_0)
-  minReads=(Right 1)
-  mayRaise=[ExceptionFailure]
-pushValue 'b'
-  minReads=(Right 1)
-  mayRaise=[ExceptionFailure]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 1)
-  mayRaise=[ExceptionFailure]
-read ((GHC.Classes.==) 'b')
-  minReads=(Right 1)
-  mayRaise=[ExceptionFailure]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 0)
-  mayRaise=[]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 0)
-  mayRaise=[]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 0)
-  mayRaise=[]
-ret
-  minReads=(Right 0)
-  mayRaise=[]
diff --git a/test/Golden/Machine/G12.expected.txt b/test/Golden/Machine/G12.expected.txt
deleted file mode 100644
--- a/test/Golden/Machine/G12.expected.txt
+++ /dev/null
@@ -1,146 +0,0 @@
-let <hidden>
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-| catch ExceptionFailure
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| | <ok>
-| | | pushValue (\x_0 -> \x_1 -> \x_2 -> x_0 (x_1 x_2))
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (GHC.Types.:)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | read (\t_0 -> ('a' GHC.Classes.== t_0) GHC.Classes.|| (('b' GHC.Classes.== t_0) GHC.Classes.|| (('c' GHC.Classes.== t_0) GHC.Classes.|| (('d' GHC.Classes.== t_0) GHC.Classes.|| GHC.Types.False))))
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | commit ExceptionFailure
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | ret
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | <ko>
-| | | pushInput
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| | |                                                                j_1
-| | |                                                                _) -> i_0 GHC.Classes.== j_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | choicesBranch [\x_0 -> x_0]
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | | <branch>
-| | | | | pushValue (\x_0 -> x_0)
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | | ret
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | <default>
-| | | | | fail []
-| | | | |   minReads=(Left ExceptionFailure)
-| | | | |   mayRaise=[ExceptionFailure]
-pushValue GHC.Show.show
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-pushValue (\x_0 -> \x_1 -> x_0)
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-call <hidden>
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-pushValue GHC.Types.[]
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-join <hidden>
-  minReads=(Right 0)
-  mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| ret
-|   minReads=(Right 0)
-|   mayRaise=[]
-catch ExceptionFailure
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-| <ok>
-| | catch ExceptionFailure
-| |   minReads=(Right 0)
-| |   mayRaise=[]
-| | | <ok>
-| | | | pushInput
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | read ((\x_0 -> \x_1 -> x_0) GHC.Types.True)
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | popValue
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | commit ExceptionFailure
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | loadInput
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | fail []
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | <ko>
-| | | | loadInput
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | pushValue GHC.Tuple.()
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | commit ExceptionFailure
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | refJoin <hidden>
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| <ko>
-| | pushInput
-| |   minReads=(Left ExceptionFailure)
-| |   mayRaise=[ExceptionFailure]
-| | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| |                                                                j_1
-| |                                                                _) -> i_0 GHC.Classes.== j_1)
-| |   minReads=(Left ExceptionFailure)
-| |   mayRaise=[ExceptionFailure]
-| | choicesBranch [\x_0 -> x_0]
-| |   minReads=(Left ExceptionFailure)
-| |   mayRaise=[ExceptionFailure]
-| | | <branch>
-| | | | fail [FailureEnd]
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | <default>
-| | | | fail []
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
diff --git a/test/Golden/Machine/G13.expected.txt b/test/Golden/Machine/G13.expected.txt
deleted file mode 100644
--- a/test/Golden/Machine/G13.expected.txt
+++ /dev/null
@@ -1,416 +0,0 @@
-let <hidden>
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-| call <hidden>
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| pushValue GHC.Types.[]
-|   minReads=(Right 0)
-|   mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| ret
-|   minReads=(Right 0)
-|   mayRaise=[]
-let <hidden>
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-| catch ExceptionFailure
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| | <ok>
-| | | pushValue (\x_0 -> \x_1 -> \x_2 -> x_0 (x_1 x_2))
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (GHC.Types.:)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | join <hidden>
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | call <hidden>
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | call <hidden>
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | commit ExceptionFailure
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | ret
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | pushInput
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | read ((\x_0 -> \x_1 -> x_0) GHC.Types.True)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | swapValue
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | loadInput
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | choicesBranch [(GHC.Classes.==) '<',(GHC.Classes.==) '>',(GHC.Classes.==) '+',(GHC.Classes.==) '-',(GHC.Classes.==) ',',(GHC.Classes.==) '.',(GHC.Classes.==) '[']
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | | <branch>
-| | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue Parsers.Brainfuck.Types.Backward
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | read ((\x_0 -> \x_1 -> x_0) GHC.Types.True)
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | | refJoin <hidden>
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | <branch>
-| | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue Parsers.Brainfuck.Types.Forward
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | read ((\x_0 -> \x_1 -> x_0) GHC.Types.True)
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | | refJoin <hidden>
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | <branch>
-| | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue Parsers.Brainfuck.Types.Increment
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | read ((\x_0 -> \x_1 -> x_0) GHC.Types.True)
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | | refJoin <hidden>
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | <branch>
-| | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue Parsers.Brainfuck.Types.Decrement
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | read ((\x_0 -> \x_1 -> x_0) GHC.Types.True)
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | | refJoin <hidden>
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | <branch>
-| | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue Parsers.Brainfuck.Types.Input
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | read ((\x_0 -> \x_1 -> x_0) GHC.Types.True)
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | | refJoin <hidden>
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | <branch>
-| | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue Parsers.Brainfuck.Types.Output
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | read ((\x_0 -> \x_1 -> x_0) GHC.Types.True)
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | | refJoin <hidden>
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | <branch>
-| | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | |   minReads=(Right 2)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | |   minReads=(Right 2)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue (\x_0 -> x_0)
-| | | | |   minReads=(Right 2)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 2)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | |   minReads=(Right 2)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | read ((\x_0 -> \x_1 -> x_0) GHC.Types.True)
-| | | | |   minReads=(Right 2)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | call <hidden>
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue Parsers.Brainfuck.Types.Loop
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | call <hidden>
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue ']'
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | read ((GHC.Classes.==) ']')
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | | refJoin <hidden>
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | <default>
-| | | | | fail [FailureEmpty]
-| | | | |   minReads=(Left ExceptionFailure)
-| | | | |   mayRaise=[ExceptionFailure]
-| | <ko>
-| | | pushInput
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| | |                                                                j_1
-| | |                                                                _) -> i_0 GHC.Classes.== j_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | choicesBranch [\x_0 -> x_0]
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | | <branch>
-| | | | | pushValue (\x_0 -> x_0)
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | | ret
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | <default>
-| | | | | fail []
-| | | | |   minReads=(Left ExceptionFailure)
-| | | | |   mayRaise=[ExceptionFailure]
-let <hidden>
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-| catch ExceptionFailure
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| | <ok>
-| | | pushValue (\x_0 -> \x_1 -> \x_2 -> x_0 (x_1 x_2))
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | read (\c_0 -> GHC.Classes.not (('<' GHC.Classes.== c_0) GHC.Classes.|| (('>' GHC.Classes.== c_0) GHC.Classes.|| (('+' GHC.Classes.== c_0) GHC.Classes.|| (('-' GHC.Classes.== c_0) GHC.Classes.|| ((',' GHC.Classes.== c_0) GHC.Classes.|| (('.' GHC.Classes.== c_0) GHC.Classes.|| (('[' GHC.Classes.== c_0) GHC.Classes.|| ((']' GHC.Classes.== c_0) GHC.Classes.|| GHC.Types.False)))))))))
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | commit ExceptionFailure
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | ret
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | <ko>
-| | | pushInput
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| | |                                                                j_1
-| | |                                                                _) -> i_0 GHC.Classes.== j_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | choicesBranch [\x_0 -> x_0]
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | | <branch>
-| | | | | pushValue (\x_0 -> x_0)
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | | ret
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | <default>
-| | | | | fail []
-| | | | |   minReads=(Left ExceptionFailure)
-| | | | |   mayRaise=[ExceptionFailure]
-let <hidden>
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> \x_1 -> x_0)
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> x_0)
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| pushValue ((\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1) (\x_3 -> \x_4 -> x_3 x_4))
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| pushValue GHC.Tuple.()
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| call <hidden>
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| pushValue GHC.Tuple.()
-|   minReads=(Right 0)
-|   mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| ret
-|   minReads=(Right 0)
-|   mayRaise=[]
-pushValue GHC.Show.show
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-pushValue (\x_0 -> \x_1 -> x_0)
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-pushValue (\x_0 -> x_0)
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-call <hidden>
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-call <hidden>
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 0)
-  mayRaise=[]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 0)
-  mayRaise=[]
-ret
-  minReads=(Right 0)
-  mayRaise=[]
diff --git a/test/Golden/Machine/G14.expected.txt b/test/Golden/Machine/G14.expected.txt
deleted file mode 100644
--- a/test/Golden/Machine/G14.expected.txt
+++ /dev/null
@@ -1,3383 +0,0 @@
-let <hidden>
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-| catch ExceptionFailure
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| | <ok>
-| | | pushValue (\x_0 -> \x_1 -> \x_2 -> x_0 (x_1 x_2))
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | commit ExceptionFailure
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | ret
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | <ko>
-| | | pushInput
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| | |                                                                j_1
-| | |                                                                _) -> i_0 GHC.Classes.== j_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | choicesBranch [\x_0 -> x_0]
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | | <branch>
-| | | | | pushValue (\x_0 -> x_0)
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | | ret
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | <default>
-| | | | | fail []
-| | | | |   minReads=(Left ExceptionFailure)
-| | | | |   mayRaise=[ExceptionFailure]
-let <hidden>
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-| catch ExceptionFailure
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| | <ok>
-| | | pushValue (\x_0 -> \x_1 -> \x_2 -> x_0 (x_1 x_2))
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | commit ExceptionFailure
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | ret
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | <ko>
-| | | pushInput
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| | |                                                                j_1
-| | |                                                                _) -> i_0 GHC.Classes.== j_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | choicesBranch [\x_0 -> x_0]
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | | <branch>
-| | | | | pushValue (\x_0 -> x_0)
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | | ret
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | <default>
-| | | | | fail []
-| | | | |   minReads=(Left ExceptionFailure)
-| | | | |   mayRaise=[ExceptionFailure]
-let <hidden>
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-| catch ExceptionFailure
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| | <ok>
-| | | pushValue (\x_0 -> \x_1 -> \x_2 -> x_0 (x_1 x_2))
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | read Parsers.Nandlang.nandIdentLetter
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | commit ExceptionFailure
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | ret
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | <ko>
-| | | pushInput
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| | |                                                                j_1
-| | |                                                                _) -> i_0 GHC.Classes.== j_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | choicesBranch [\x_0 -> x_0]
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | | <branch>
-| | | | | pushValue (\x_0 -> x_0)
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | | ret
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | <default>
-| | | | | fail []
-| | | | |   minReads=(Left ExceptionFailure)
-| | | | |   mayRaise=[ExceptionFailure]
-let <hidden>
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-| catch ExceptionFailure
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| | <ok>
-| | | pushValue (\x_0 -> \x_1 -> \x_2 -> x_0 (x_1 x_2))
-| | |   minReads=(Right 18)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1)
-| | |   minReads=(Right 18)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 18)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 18)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 18)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> x_0)
-| | |   minReads=(Right 18)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 18)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 18)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> x_0)
-| | |   minReads=(Right 18)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 18)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 18)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> x_0)
-| | |   minReads=(Right 18)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 18)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 18)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> x_0)
-| | |   minReads=(Right 18)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 18)
-| | |   mayRaise=[ExceptionFailure]
-| | | catch ExceptionFailure
-| | |   minReads=(Right 18)
-| | |   mayRaise=[ExceptionFailure]
-| | | | <ok>
-| | | | | pushValue (GHC.Types.:)
-| | | | |   minReads=(Right 18)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | |   minReads=(Right 18)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue 'f'
-| | | | |   minReads=(Right 18)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 18)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | read ((GHC.Classes.==) 'f')
-| | | | |   minReads=(Right 18)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 17)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 17)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue (GHC.Types.:)
-| | | | |   minReads=(Right 17)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | |   minReads=(Right 17)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue 'u'
-| | | | |   minReads=(Right 17)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 17)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | read ((GHC.Classes.==) 'u')
-| | | | |   minReads=(Right 17)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 16)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 16)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue (GHC.Types.:)
-| | | | |   minReads=(Right 16)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | |   minReads=(Right 16)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue 'n'
-| | | | |   minReads=(Right 16)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 16)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | read ((GHC.Classes.==) 'n')
-| | | | |   minReads=(Right 16)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 15)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 15)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue (GHC.Types.:)
-| | | | |   minReads=(Right 15)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | |   minReads=(Right 15)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue 'c'
-| | | | |   minReads=(Right 15)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 15)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | read ((GHC.Classes.==) 'c')
-| | | | |   minReads=(Right 15)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 14)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 14)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue (GHC.Types.:)
-| | | | |   minReads=(Right 14)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | |   minReads=(Right 14)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue 't'
-| | | | |   minReads=(Right 14)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 14)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | read ((GHC.Classes.==) 't')
-| | | | |   minReads=(Right 14)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 13)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 13)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue (GHC.Types.:)
-| | | | |   minReads=(Right 13)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | |   minReads=(Right 13)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue 'i'
-| | | | |   minReads=(Right 13)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 13)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | read ((GHC.Classes.==) 'i')
-| | | | |   minReads=(Right 13)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 12)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 12)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue (GHC.Types.:)
-| | | | |   minReads=(Right 12)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | |   minReads=(Right 12)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue 'o'
-| | | | |   minReads=(Right 12)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 12)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | read ((GHC.Classes.==) 'o')
-| | | | |   minReads=(Right 12)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 11)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 11)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue (GHC.Types.:)
-| | | | |   minReads=(Right 11)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | |   minReads=(Right 11)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue 'n'
-| | | | |   minReads=(Right 11)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 11)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | read ((GHC.Classes.==) 'n')
-| | | | |   minReads=(Right 11)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 10)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 10)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue GHC.Types.[]
-| | | | |   minReads=(Right 10)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 10)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 10)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 10)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 10)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 10)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 10)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 10)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 10)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | commit ExceptionFailure
-| | | | |   minReads=(Right 10)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 10)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | call <hidden>
-| | | | |   minReads=(Right 10)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 10)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 10)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | call <hidden>
-| | | | |   minReads=(Right 10)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 8)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 8)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | |   minReads=(Right 8)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | |   minReads=(Right 8)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue (\x_0 -> x_0)
-| | | | |   minReads=(Right 8)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 8)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | call <hidden>
-| | | | |   minReads=(Right 8)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 6)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | |   minReads=(Right 6)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue (\x_0 -> x_0)
-| | | | |   minReads=(Right 6)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 6)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | call <hidden>
-| | | | |   minReads=(Right 6)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 2)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | join <hidden>
-| | | | |   minReads=(Right 6)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | |   minReads=(Right 6)
-| | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | |   minReads=(Right 6)
-| | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | |   minReads=(Right 6)
-| | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | call <hidden>
-| | | | | |   minReads=(Right 6)
-| | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | |   minReads=(Right 4)
-| | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | |   minReads=(Right 4)
-| | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | |   minReads=(Right 4)
-| | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | call <hidden>
-| | | | | |   minReads=(Right 4)
-| | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | |   minReads=(Right 0)
-| | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | |   minReads=(Right 0)
-| | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | |   minReads=(Right 0)
-| | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | call <hidden>
-| | | | | |   minReads=(Right 0)
-| | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | |   minReads=(Right 0)
-| | | | | |   mayRaise=[]
-| | | | | | commit ExceptionFailure
-| | | | | |   minReads=(Right 0)
-| | | | | |   mayRaise=[]
-| | | | | | ret
-| | | | | |   minReads=(Right 0)
-| | | | | |   mayRaise=[]
-| | | | | catch ExceptionFailure
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | | <ok>
-| | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | |   minReads=(Right 2)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | pushValue GHC.Tuple.()
-| | | | | | |   minReads=(Right 2)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | |   minReads=(Right 2)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | |   minReads=(Right 2)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | pushValue (\x_0 -> x_0)
-| | | | | | |   minReads=(Right 2)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | |   minReads=(Right 2)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | |   minReads=(Right 2)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | |   minReads=(Right 2)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | pushValue ':'
-| | | | | | |   minReads=(Right 2)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | |   minReads=(Right 2)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | read ((GHC.Classes.==) ':')
-| | | | | | |   minReads=(Right 2)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | |   minReads=(Right 1)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | |   minReads=(Right 1)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | call <hidden>
-| | | | | | |   minReads=(Right 1)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | |   minReads=(Right 0)
-| | | | | | |   mayRaise=[]
-| | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | |   minReads=(Right 0)
-| | | | | | |   mayRaise=[]
-| | | | | | | call <hidden>
-| | | | | | |   minReads=(Right 0)
-| | | | | | |   mayRaise=[]
-| | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | |   minReads=(Right 0)
-| | | | | | |   mayRaise=[]
-| | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | |   minReads=(Right 0)
-| | | | | | |   mayRaise=[]
-| | | | | | | commit ExceptionFailure
-| | | | | | |   minReads=(Right 0)
-| | | | | | |   mayRaise=[]
-| | | | | | | refJoin <hidden>
-| | | | | | |   minReads=(Right 0)
-| | | | | | |   mayRaise=[]
-| | | | | | <ko>
-| | | | | | | pushInput
-| | | | | | |   minReads=(Right 0)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| | | | | | |                                                                j_1
-| | | | | | |                                                                _) -> i_0 GHC.Classes.== j_1)
-| | | | | | |   minReads=(Right 0)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | choicesBranch [\x_0 -> x_0]
-| | | | | | |   minReads=(Right 0)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | <branch>
-| | | | | | | | | call <hidden>
-| | | | | | | | |   minReads=(Right 0)
-| | | | | | | | |   mayRaise=[]
-| | | | | | | | | refJoin <hidden>
-| | | | | | | | |   minReads=(Right 0)
-| | | | | | | | |   mayRaise=[]
-| | | | | | | | <default>
-| | | | | | | | | fail []
-| | | | | | | | |   minReads=(Left ExceptionFailure)
-| | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | <ko>
-| | | | | loadInput
-| | | | |   minReads=(Left ExceptionFailure)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | fail []
-| | | | |   minReads=(Left ExceptionFailure)
-| | | | |   mayRaise=[ExceptionFailure]
-| | <ko>
-| | | pushInput
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| | |                                                                j_1
-| | |                                                                _) -> i_0 GHC.Classes.== j_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | choicesBranch [\x_0 -> x_0]
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | | <branch>
-| | | | | pushValue (\x_0 -> x_0)
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | | ret
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | <default>
-| | | | | fail []
-| | | | |   minReads=(Left ExceptionFailure)
-| | | | |   mayRaise=[ExceptionFailure]
-let <hidden>
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-| catch ExceptionFailure
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| | <ok>
-| | | pushValue (\x_0 -> \x_1 -> \x_2 -> x_0 (x_1 x_2))
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1)
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | join <hidden>
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | call <hidden>
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | commit ExceptionFailure
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | ret
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | catch ExceptionFailure
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | | <ok>
-| | | | | join <hidden>
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | | commit ExceptionFailure
-| | | | | |   minReads=(Right 0)
-| | | | | |   mayRaise=[]
-| | | | | | refJoin <hidden>
-| | | | | |   minReads=(Right 0)
-| | | | | |   mayRaise=[]
-| | | | | catch ExceptionFailure
-| | | | |   minReads=(Right 2)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | | <ok>
-| | | | | | | join <hidden>
-| | | | | | |   minReads=(Right 0)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | commit ExceptionFailure
-| | | | | | | |   minReads=(Right 0)
-| | | | | | | |   mayRaise=[]
-| | | | | | | | refJoin <hidden>
-| | | | | | | |   minReads=(Right 0)
-| | | | | | | |   mayRaise=[]
-| | | | | | | catch ExceptionFailure
-| | | | | | |   minReads=(Right 2)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | <ok>
-| | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | |   minReads=(Right 2)
-| | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | pushValue (\x_0 -> x_0)
-| | | | | | | | |   minReads=(Right 2)
-| | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | |   minReads=(Right 2)
-| | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | catch ExceptionFailure
-| | | | | | | | |   minReads=(Right 2)
-| | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | <ok>
-| | | | | | | | | | | pushValue (GHC.Types.:)
-| | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | pushValue 'i'
-| | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | read ((GHC.Classes.==) 'i')
-| | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | |   minReads=(Right 1)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | |   minReads=(Right 1)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | pushValue (GHC.Types.:)
-| | | | | | | | | | |   minReads=(Right 1)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | | | |   minReads=(Right 1)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | pushValue 'f'
-| | | | | | | | | | |   minReads=(Right 1)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | |   minReads=(Right 1)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | read ((GHC.Classes.==) 'f')
-| | | | | | | | | | |   minReads=(Right 1)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | pushValue GHC.Types.[]
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | commit ExceptionFailure
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | call <hidden>
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | commit ExceptionFailure
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | refJoin <hidden>
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | <ko>
-| | | | | | | | | | | loadInput
-| | | | | | | | | | |   minReads=(Left ExceptionFailure)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | fail []
-| | | | | | | | | | |   minReads=(Left ExceptionFailure)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | <ko>
-| | | | | | | | | pushInput
-| | | | | | | | |   minReads=(Right 11)
-| | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| | | | | | | | |                                                                j_1
-| | | | | | | | |                                                                _) -> i_0 GHC.Classes.== j_1)
-| | | | | | | | |   minReads=(Right 11)
-| | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | choicesBranch [\x_0 -> x_0]
-| | | | | | | | |   minReads=(Right 11)
-| | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | <branch>
-| | | | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | | | |   minReads=(Right 11)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | pushValue (\x_0 -> x_0)
-| | | | | | | | | | |   minReads=(Right 11)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | |   minReads=(Right 11)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | | | |   minReads=(Right 11)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | pushValue (\x_0 -> x_0)
-| | | | | | | | | | |   minReads=(Right 11)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | |   minReads=(Right 11)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | | | |   minReads=(Right 11)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | pushValue (\x_0 -> x_0)
-| | | | | | | | | | |   minReads=(Right 11)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | |   minReads=(Right 11)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | catch ExceptionFailure
-| | | | | | | | | | |   minReads=(Right 11)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | <ok>
-| | | | | | | | | | | | | pushValue (GHC.Types.:)
-| | | | | | | | | | | | |   minReads=(Right 11)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | | | | | |   minReads=(Right 11)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | pushValue 'w'
-| | | | | | | | | | | | |   minReads=(Right 11)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | |   minReads=(Right 11)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | read ((GHC.Classes.==) 'w')
-| | | | | | | | | | | | |   minReads=(Right 11)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | |   minReads=(Right 10)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | |   minReads=(Right 10)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | pushValue (GHC.Types.:)
-| | | | | | | | | | | | |   minReads=(Right 10)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | | | | | |   minReads=(Right 10)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | pushValue 'h'
-| | | | | | | | | | | | |   minReads=(Right 10)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | |   minReads=(Right 10)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | read ((GHC.Classes.==) 'h')
-| | | | | | | | | | | | |   minReads=(Right 10)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | |   minReads=(Right 9)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | |   minReads=(Right 9)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | pushValue (GHC.Types.:)
-| | | | | | | | | | | | |   minReads=(Right 9)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | | | | | |   minReads=(Right 9)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | pushValue 'i'
-| | | | | | | | | | | | |   minReads=(Right 9)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | |   minReads=(Right 9)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | read ((GHC.Classes.==) 'i')
-| | | | | | | | | | | | |   minReads=(Right 9)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | |   minReads=(Right 8)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | |   minReads=(Right 8)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | pushValue (GHC.Types.:)
-| | | | | | | | | | | | |   minReads=(Right 8)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | | | | | |   minReads=(Right 8)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | pushValue 'l'
-| | | | | | | | | | | | |   minReads=(Right 8)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | |   minReads=(Right 8)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | read ((GHC.Classes.==) 'l')
-| | | | | | | | | | | | |   minReads=(Right 8)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | |   minReads=(Right 7)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | |   minReads=(Right 7)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | pushValue (GHC.Types.:)
-| | | | | | | | | | | | |   minReads=(Right 7)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | | | | | |   minReads=(Right 7)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | pushValue 'e'
-| | | | | | | | | | | | |   minReads=(Right 7)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | |   minReads=(Right 7)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | read ((GHC.Classes.==) 'e')
-| | | | | | | | | | | | |   minReads=(Right 7)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | |   minReads=(Right 6)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | |   minReads=(Right 6)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | pushValue GHC.Types.[]
-| | | | | | | | | | | | |   minReads=(Right 6)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | |   minReads=(Right 6)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | |   minReads=(Right 6)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | |   minReads=(Right 6)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | |   minReads=(Right 6)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | |   minReads=(Right 6)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | commit ExceptionFailure
-| | | | | | | | | | | | |   minReads=(Right 6)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | |   minReads=(Right 6)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | call <hidden>
-| | | | | | | | | | | | |   minReads=(Right 6)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | |   minReads=(Right 6)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | |   minReads=(Right 6)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | call <hidden>
-| | | | | | | | | | | | |   minReads=(Right 6)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | |   minReads=(Right 4)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | |   minReads=(Right 4)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | call <hidden>
-| | | | | | | | | | | | |   minReads=(Right 4)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | | | refJoin <hidden>
-| | | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | | <ko>
-| | | | | | | | | | | | | loadInput
-| | | | | | | | | | | | |   minReads=(Left ExceptionFailure)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | fail []
-| | | | | | | | | | | | |   minReads=(Left ExceptionFailure)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | <default>
-| | | | | | | | | | | fail []
-| | | | | | | | | | |   minReads=(Left ExceptionFailure)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | <ko>
-| | | | | | | pushInput
-| | | | | | |   minReads=(Right 8)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| | | | | | |                                                                j_1
-| | | | | | |                                                                _) -> i_0 GHC.Classes.== j_1)
-| | | | | | |   minReads=(Right 8)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | choicesBranch [\x_0 -> x_0]
-| | | | | | |   minReads=(Right 8)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | <branch>
-| | | | | | | | | catch ExceptionFailure
-| | | | | | | | |   minReads=(Right 8)
-| | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | <ok>
-| | | | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | | | |   minReads=(Right 8)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | | | |   minReads=(Right 8)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | pushValue (\x_0 -> x_0)
-| | | | | | | | | | |   minReads=(Right 8)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | |   minReads=(Right 8)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | | | |   minReads=(Right 8)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | pushValue (\x_0 -> x_0)
-| | | | | | | | | | |   minReads=(Right 8)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | |   minReads=(Right 8)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | | | |   minReads=(Right 8)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | pushValue (\x_0 -> x_0)
-| | | | | | | | | | |   minReads=(Right 8)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | |   minReads=(Right 8)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | join <hidden>
-| | | | | | | | | | |   minReads=(Right 8)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | |   minReads=(Right 8)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | | | | |   minReads=(Right 8)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | pushValue (\x_0 -> x_0)
-| | | | | | | | | | | |   minReads=(Right 8)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | |   minReads=(Right 8)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | call <hidden>
-| | | | | | | | | | | |   minReads=(Right 8)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | |   minReads=(Right 6)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | | | | |   minReads=(Right 6)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | pushValue (\x_0 -> x_0)
-| | | | | | | | | | | |   minReads=(Right 6)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | |   minReads=(Right 6)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | pushValue ((\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1) (\x_3 -> \x_4 -> x_3 x_4))
-| | | | | | | | | | | |   minReads=(Right 6)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | call <hidden>
-| | | | | | | | | | | |   minReads=(Right 6)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | call <hidden>
-| | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | | call <hidden>
-| | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | |   minReads=(Right 4)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | |   minReads=(Right 4)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | |   minReads=(Right 4)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | |   minReads=(Right 4)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | | | | |   minReads=(Right 4)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | | | | |   minReads=(Right 4)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | pushValue '='
-| | | | | | | | | | | |   minReads=(Right 4)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | |   minReads=(Right 4)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | read ((GHC.Classes.==) '=')
-| | | | | | | | | | | |   minReads=(Right 4)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | |   minReads=(Right 3)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | |   minReads=(Right 3)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | call <hidden>
-| | | | | | | | | | | |   minReads=(Right 3)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | pushValue (\x_0 -> x_0)
-| | | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | call <hidden>
-| | | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | | pushValue (\x_0 -> x_0)
-| | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | | pushValue ((\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1) (\x_3 -> \x_4 -> x_3 x_4))
-| | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | | call <hidden>
-| | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | call <hidden>
-| | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | | call <hidden>
-| | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | call <hidden>
-| | | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | | commit ExceptionFailure
-| | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | | refJoin <hidden>
-| | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | catch ExceptionFailure
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | <ok>
-| | | | | | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | | | | | |   minReads=(Right 3)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | pushValue GHC.Tuple.()
-| | | | | | | | | | | | |   minReads=(Right 3)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | |   minReads=(Right 3)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | | | | | |   minReads=(Right 3)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | pushValue (\x_0 -> x_0)
-| | | | | | | | | | | | |   minReads=(Right 3)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | |   minReads=(Right 3)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | catch ExceptionFailure
-| | | | | | | | | | | | |   minReads=(Right 3)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | | <ok>
-| | | | | | | | | | | | | | | pushValue (GHC.Types.:)
-| | | | | | | | | | | | | | |   minReads=(Right 3)
-| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | | | | | | | |   minReads=(Right 3)
-| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | | | pushValue 'v'
-| | | | | | | | | | | | | | |   minReads=(Right 3)
-| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | | | |   minReads=(Right 3)
-| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | | | read ((GHC.Classes.==) 'v')
-| | | | | | | | | | | | | | |   minReads=(Right 3)
-| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | | | pushValue (GHC.Types.:)
-| | | | | | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | | | pushValue 'a'
-| | | | | | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | | | read ((GHC.Classes.==) 'a')
-| | | | | | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | | | |   minReads=(Right 1)
-| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | | | |   minReads=(Right 1)
-| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | | | pushValue (GHC.Types.:)
-| | | | | | | | | | | | | | |   minReads=(Right 1)
-| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | | | | | | | |   minReads=(Right 1)
-| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | | | pushValue 'r'
-| | | | | | | | | | | | | | |   minReads=(Right 1)
-| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | | | |   minReads=(Right 1)
-| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | | | read ((GHC.Classes.==) 'r')
-| | | | | | | | | | | | | | |   minReads=(Right 1)
-| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | | | | | pushValue GHC.Types.[]
-| | | | | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | | | | | commit ExceptionFailure
-| | | | | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | | | | | call <hidden>
-| | | | | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | | | | | commit ExceptionFailure
-| | | | | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | | | | | refJoin <hidden>
-| | | | | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | | | | <ko>
-| | | | | | | | | | | | | | | loadInput
-| | | | | | | | | | | | | | |   minReads=(Left ExceptionFailure)
-| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | | | fail []
-| | | | | | | | | | | | | | |   minReads=(Left ExceptionFailure)
-| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | <ko>
-| | | | | | | | | | | | | pushInput
-| | | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| | | | | | | | | | | | |                                                                j_1
-| | | | | | | | | | | | |                                                                _) -> i_0 GHC.Classes.== j_1)
-| | | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | choicesBranch [\x_0 -> x_0]
-| | | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | | | <branch>
-| | | | | | | | | | | | | | | call <hidden>
-| | | | | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | | | | | refJoin <hidden>
-| | | | | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | | | | <default>
-| | | | | | | | | | | | | | | fail []
-| | | | | | | | | | | | | | |   minReads=(Left ExceptionFailure)
-| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | <ko>
-| | | | | | | | | | | loadInput
-| | | | | | | | | | |   minReads=(Left ExceptionFailure)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | fail []
-| | | | | | | | | | |   minReads=(Left ExceptionFailure)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | <default>
-| | | | | | | | | fail []
-| | | | | | | | |   minReads=(Left ExceptionFailure)
-| | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | <ko>
-| | | | | pushInput
-| | | | |   minReads=(Right 4)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| | | | |                                                                j_1
-| | | | |                                                                _) -> i_0 GHC.Classes.== j_1)
-| | | | |   minReads=(Right 4)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | choicesBranch [\x_0 -> x_0]
-| | | | |   minReads=(Right 4)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | | <branch>
-| | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | |   minReads=(Right 4)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | call <hidden>
-| | | | | | |   minReads=(Right 4)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | |   minReads=(Right 2)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | call <hidden>
-| | | | | | |   minReads=(Right 2)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | |   minReads=(Right 0)
-| | | | | | |   mayRaise=[]
-| | | | | | | refJoin <hidden>
-| | | | | | |   minReads=(Right 0)
-| | | | | | |   mayRaise=[]
-| | | | | | <default>
-| | | | | | | fail []
-| | | | | | |   minReads=(Left ExceptionFailure)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | <ko>
-| | | pushInput
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| | |                                                                j_1
-| | |                                                                _) -> i_0 GHC.Classes.== j_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | choicesBranch [\x_0 -> x_0]
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | | <branch>
-| | | | | pushValue (\x_0 -> x_0)
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | | ret
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | <default>
-| | | | | fail []
-| | | | |   minReads=(Left ExceptionFailure)
-| | | | |   mayRaise=[ExceptionFailure]
-let <hidden>
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-| catch ExceptionFailure
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| | <ok>
-| | | pushValue (\x_0 -> \x_1 -> \x_2 -> x_0 (x_1 x_2))
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> x_0)
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | commit ExceptionFailure
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | ret
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | <ko>
-| | | pushInput
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| | |                                                                j_1
-| | |                                                                _) -> i_0 GHC.Classes.== j_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | choicesBranch [\x_0 -> x_0]
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | | <branch>
-| | | | | pushValue (\x_0 -> x_0)
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | | ret
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | <default>
-| | | | | fail []
-| | | | |   minReads=(Left ExceptionFailure)
-| | | | |   mayRaise=[ExceptionFailure]
-let <hidden>
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-| catch ExceptionFailure
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| | <ok>
-| | | pushValue (\x_0 -> \x_1 -> \x_2 -> x_0 (x_1 x_2))
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> x_0)
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | commit ExceptionFailure
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | ret
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | <ko>
-| | | pushInput
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| | |                                                                j_1
-| | |                                                                _) -> i_0 GHC.Classes.== j_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | choicesBranch [\x_0 -> x_0]
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | | <branch>
-| | | | | pushValue (\x_0 -> x_0)
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | | ret
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | <default>
-| | | | | fail []
-| | | | |   minReads=(Left ExceptionFailure)
-| | | | |   mayRaise=[ExceptionFailure]
-let <hidden>
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-| catch ExceptionFailure
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| | <ok>
-| | | pushValue (\x_0 -> \x_1 -> \x_2 -> x_0 (x_1 x_2))
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> x_0)
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | commit ExceptionFailure
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | ret
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | <ko>
-| | | pushInput
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| | |                                                                j_1
-| | |                                                                _) -> i_0 GHC.Classes.== j_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | choicesBranch [\x_0 -> x_0]
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | | <branch>
-| | | | | pushValue (\x_0 -> x_0)
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | | ret
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | <default>
-| | | | | fail []
-| | | | |   minReads=(Left ExceptionFailure)
-| | | | |   mayRaise=[ExceptionFailure]
-let <hidden>
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-| catch ExceptionFailure
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| | <ok>
-| | | pushValue (\x_0 -> \x_1 -> \x_2 -> x_0 (x_1 x_2))
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> x_0)
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | commit ExceptionFailure
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | ret
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | <ko>
-| | | pushInput
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| | |                                                                j_1
-| | |                                                                _) -> i_0 GHC.Classes.== j_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | choicesBranch [\x_0 -> x_0]
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | | <branch>
-| | | | | pushValue (\x_0 -> x_0)
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | | ret
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | <default>
-| | | | | fail []
-| | | | |   minReads=(Left ExceptionFailure)
-| | | | |   mayRaise=[ExceptionFailure]
-let <hidden>
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-| catch ExceptionFailure
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| | <ok>
-| | | pushValue (\x_0 -> \x_1 -> \x_2 -> x_0 (x_1 x_2))
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1)
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> x_0)
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue '!'
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | read ((GHC.Classes.==) '!')
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 3)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 3)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 3)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | commit ExceptionFailure
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | ret
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | <ko>
-| | | pushInput
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| | |                                                                j_1
-| | |                                                                _) -> i_0 GHC.Classes.== j_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | choicesBranch [\x_0 -> x_0]
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | | <branch>
-| | | | | pushValue (\x_0 -> x_0)
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | | ret
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | <default>
-| | | | | fail []
-| | | | |   minReads=(Left ExceptionFailure)
-| | | | |   mayRaise=[ExceptionFailure]
-let <hidden>
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-| catch ExceptionFailure
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| | <ok>
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue GHC.Tuple.()
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> x_0)
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> x_0)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue ((\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1) (\x_3 -> \x_4 -> x_3 x_4))
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | call <hidden>
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | commit ExceptionFailure
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | ret
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | <ko>
-| | | pushInput
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| | |                                                                j_1
-| | |                                                                _) -> i_0 GHC.Classes.== j_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | choicesBranch [\x_0 -> x_0]
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | | <branch>
-| | | | | jump <hidden>
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | <default>
-| | | | | fail []
-| | | | |   minReads=(Left ExceptionFailure)
-| | | | |   mayRaise=[ExceptionFailure]
-let <hidden>
-  minReads=(Right 0)
-  mayRaise=[]
-| pushValue (\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| pushValue (\x_0 -> \x_1 -> x_0)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| ret
-|   minReads=(Right 0)
-|   mayRaise=[]
-let <hidden>
-  minReads=(Right 0)
-  mayRaise=[]
-| pushValue GHC.Tuple.()
-|   minReads=(Right 0)
-|   mayRaise=[]
-| ret
-|   minReads=(Right 0)
-|   mayRaise=[]
-let <hidden>
-  minReads=(Right 0)
-  mayRaise=[]
-| pushValue GHC.Tuple.()
-|   minReads=(Right 0)
-|   mayRaise=[]
-| ret
-|   minReads=(Right 0)
-|   mayRaise=[]
-let <hidden>
-  minReads=(Right 1)
-  mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> \x_1 -> x_0)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> x_0)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| call <hidden>
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> \x_1 -> x_0)
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> x_0)
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| pushValue ((\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1) (\x_3 -> \x_4 -> x_3 x_4))
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| pushValue GHC.Tuple.()
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| call <hidden>
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| pushValue GHC.Tuple.()
-|   minReads=(Right 0)
-|   mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| ret
-|   minReads=(Right 0)
-|   mayRaise=[]
-let <hidden>
-  minReads=(Right 1)
-  mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> \x_1 -> x_0)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> x_0)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| read GHC.Unicode.isSpace
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| call <hidden>
-|   minReads=(Right 0)
-|   mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| ret
-|   minReads=(Right 0)
-|   mayRaise=[]
-let <hidden>
-  minReads=(Right 1)
-  mayRaise=[ExceptionFailure]
-| read (\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))))))))))
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| ret
-|   minReads=(Right 0)
-|   mayRaise=[]
-let <hidden>
-  minReads=(Right 2)
-  mayRaise=[ExceptionFailure]
-| catch ExceptionFailure
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| | <ok>
-| | | join <hidden>
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | | commit ExceptionFailure
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | ret
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | catch ExceptionFailure
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | | <ok>
-| | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | |   minReads=(Right 2)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue (\x_0 -> x_0)
-| | | | |   minReads=(Right 2)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 2)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | join <hidden>
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | |   minReads=(Right 1)
-| | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | call <hidden>
-| | | | | |   minReads=(Right 1)
-| | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | |   minReads=(Right 0)
-| | | | | |   mayRaise=[]
-| | | | | | commit ExceptionFailure
-| | | | | |   minReads=(Right 0)
-| | | | | |   mayRaise=[]
-| | | | | | refJoin <hidden>
-| | | | | |   minReads=(Right 0)
-| | | | | |   mayRaise=[]
-| | | | | catch ExceptionFailure
-| | | | |   minReads=(Right 1)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | | <ok>
-| | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | |   minReads=(Right 1)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | pushValue '0'
-| | | | | | |   minReads=(Right 1)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | |   minReads=(Right 1)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | read ((GHC.Classes.==) '0')
-| | | | | | |   minReads=(Right 1)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | |   minReads=(Right 0)
-| | | | | | |   mayRaise=[]
-| | | | | | | commit ExceptionFailure
-| | | | | | |   minReads=(Right 0)
-| | | | | | |   mayRaise=[]
-| | | | | | | refJoin <hidden>
-| | | | | | |   minReads=(Right 0)
-| | | | | | |   mayRaise=[]
-| | | | | | <ko>
-| | | | | | | pushInput
-| | | | | | |   minReads=(Right 1)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| | | | | | |                                                                j_1
-| | | | | | |                                                                _) -> i_0 GHC.Classes.== j_1)
-| | | | | | |   minReads=(Right 1)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | choicesBranch [\x_0 -> x_0]
-| | | | | | |   minReads=(Right 1)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | <branch>
-| | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | |   minReads=(Right 1)
-| | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | pushValue '1'
-| | | | | | | | |   minReads=(Right 1)
-| | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | |   minReads=(Right 1)
-| | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | read ((GHC.Classes.==) '1')
-| | | | | | | | |   minReads=(Right 1)
-| | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | |   minReads=(Right 0)
-| | | | | | | | |   mayRaise=[]
-| | | | | | | | | refJoin <hidden>
-| | | | | | | | |   minReads=(Right 0)
-| | | | | | | | |   mayRaise=[]
-| | | | | | | | <default>
-| | | | | | | | | fail []
-| | | | | | | | |   minReads=(Left ExceptionFailure)
-| | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | <ko>
-| | | | | pushInput
-| | | | |   minReads=(Right 4)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| | | | |                                                                j_1
-| | | | |                                                                _) -> i_0 GHC.Classes.== j_1)
-| | | | |   minReads=(Right 4)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | choicesBranch [\x_0 -> x_0]
-| | | | |   minReads=(Right 4)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | | <branch>
-| | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | |   minReads=(Right 4)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | |   minReads=(Right 4)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | pushValue (\x_0 -> x_0)
-| | | | | | |   minReads=(Right 4)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | |   minReads=(Right 4)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | |   minReads=(Right 4)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | pushValue '\''
-| | | | | | |   minReads=(Right 4)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | |   minReads=(Right 4)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | read ((GHC.Classes.==) '\'')
-| | | | | | |   minReads=(Right 4)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | |   minReads=(Right 3)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | |   minReads=(Right 3)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | join <hidden>
-| | | | | | |   minReads=(Right 2)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | |   minReads=(Right 2)
-| | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | |   minReads=(Right 2)
-| | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | |   minReads=(Right 2)
-| | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | |   minReads=(Right 2)
-| | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | pushValue '\''
-| | | | | | | |   minReads=(Right 2)
-| | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | |   minReads=(Right 2)
-| | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | read ((GHC.Classes.==) '\'')
-| | | | | | | |   minReads=(Right 2)
-| | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | |   minReads=(Right 1)
-| | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | |   minReads=(Right 1)
-| | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | call <hidden>
-| | | | | | | |   minReads=(Right 1)
-| | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | |   minReads=(Right 0)
-| | | | | | | |   mayRaise=[]
-| | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | |   minReads=(Right 0)
-| | | | | | | |   mayRaise=[]
-| | | | | | | | refJoin <hidden>
-| | | | | | | |   minReads=(Right 0)
-| | | | | | | |   mayRaise=[]
-| | | | | | | catch ExceptionFailure
-| | | | | | |   minReads=(Right 1)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | <ok>
-| | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | |   minReads=(Right 1)
-| | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | pushValue (\x_0 -> x_0)
-| | | | | | | | |   minReads=(Right 1)
-| | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | |   minReads=(Right 1)
-| | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | read Parsers.Nandlang.nandStringLetter
-| | | | | | | | |   minReads=(Right 1)
-| | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | |   minReads=(Right 0)
-| | | | | | | | |   mayRaise=[]
-| | | | | | | | | call <hidden>
-| | | | | | | | |   minReads=(Right 0)
-| | | | | | | | |   mayRaise=[]
-| | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | |   minReads=(Right 0)
-| | | | | | | | |   mayRaise=[]
-| | | | | | | | | commit ExceptionFailure
-| | | | | | | | |   minReads=(Right 0)
-| | | | | | | | |   mayRaise=[]
-| | | | | | | | | refJoin <hidden>
-| | | | | | | | |   minReads=(Right 0)
-| | | | | | | | |   mayRaise=[]
-| | | | | | | | <ko>
-| | | | | | | | | pushInput
-| | | | | | | | |   minReads=(Right 2)
-| | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| | | | | | | | |                                                                j_1
-| | | | | | | | |                                                                _) -> i_0 GHC.Classes.== j_1)
-| | | | | | | | |   minReads=(Right 2)
-| | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | choicesBranch [\x_0 -> x_0]
-| | | | | | | | |   minReads=(Right 2)
-| | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | <branch>
-| | | | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | pushValue (\x_0 -> x_0)
-| | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | pushValue '\\'
-| | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | read ((GHC.Classes.==) '\\')
-| | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | |   minReads=(Right 1)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | |   minReads=(Right 1)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | | | |   minReads=(Right 1)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | pushValue (\x_0 -> x_0)
-| | | | | | | | | | |   minReads=(Right 1)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | |   minReads=(Right 1)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | read (\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))))))
-| | | | | | | | | | |   minReads=(Right 1)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | call <hidden>
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | refJoin <hidden>
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | <default>
-| | | | | | | | | | | fail []
-| | | | | | | | | | |   minReads=(Left ExceptionFailure)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | <default>
-| | | | | | | fail []
-| | | | | | |   minReads=(Left ExceptionFailure)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | <ko>
-| | | pushInput
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| | |                                                                j_1
-| | |                                                                _) -> i_0 GHC.Classes.== j_1)
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | choicesBranch [\x_0 -> x_0]
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | | <branch>
-| | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | |   minReads=(Right 2)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | pushValue (\x_0 -> x_0)
-| | | | |   minReads=(Right 2)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 2)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | call <hidden>
-| | | | |   minReads=(Right 2)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | join <hidden>
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | |   minReads=(Right 0)
-| | | | | |   mayRaise=[]
-| | | | | | ret
-| | | | | |   minReads=(Right 0)
-| | | | | |   mayRaise=[]
-| | | | | catch ExceptionFailure
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[ExceptionFailure]
-| | | | | | <ok>
-| | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | |   minReads=(Right 4)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | pushValue GHC.Tuple.()
-| | | | | | |   minReads=(Right 4)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | |   minReads=(Right 4)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | join <hidden>
-| | | | | | |   minReads=(Right 0)
-| | | | | | |   mayRaise=[]
-| | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | |   minReads=(Right 0)
-| | | | | | | |   mayRaise=[]
-| | | | | | | | commit ExceptionFailure
-| | | | | | | |   minReads=(Right 0)
-| | | | | | | |   mayRaise=[]
-| | | | | | | | refJoin <hidden>
-| | | | | | | |   minReads=(Right 0)
-| | | | | | | |   mayRaise=[]
-| | | | | | | catch ExceptionFailure
-| | | | | | |   minReads=(Right 4)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | <ok>
-| | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | |   minReads=(Right 4)
-| | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | |   minReads=(Right 4)
-| | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | pushValue (\x_0 -> x_0)
-| | | | | | | | |   minReads=(Right 4)
-| | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | |   minReads=(Right 4)
-| | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | call <hidden>
-| | | | | | | | |   minReads=(Right 4)
-| | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | |   minReads=(Right 2)
-| | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | join <hidden>
-| | | | | | | | |   minReads=(Right 2)
-| | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | call <hidden>
-| | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | commit ExceptionFailure
-| | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | refJoin <hidden>
-| | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | |   mayRaise=[]
-| | | | | | | | | catch ExceptionFailure
-| | | | | | | | |   minReads=(Right 0)
-| | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | <ok>
-| | | | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | pushValue GHC.Tuple.()
-| | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | pushValue (\x_0 -> x_0)
-| | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | call <hidden>
-| | | | | | | | | | |   minReads=(Right 2)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | pushValue (\x_0 -> x_0)
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | pushValue ((\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1) (\x_3 -> \x_4 -> x_3 x_4))
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | call <hidden>
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | call <hidden>
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | call <hidden>
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | commit ExceptionFailure
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | refJoin <hidden>
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | <ko>
-| | | | | | | | | | | pushInput
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| | | | | | | | | | |                                                                j_1
-| | | | | | | | | | |                                                                _) -> i_0 GHC.Classes.== j_1)
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | choicesBranch [\x_0 -> x_0]
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | | <branch>
-| | | | | | | | | | | | | call <hidden>
-| | | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | | | refJoin <hidden>
-| | | | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | | | <default>
-| | | | | | | | | | | | | fail []
-| | | | | | | | | | | | |   minReads=(Left ExceptionFailure)
-| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | <ko>
-| | | | | | | | | pushInput
-| | | | | | | | |   minReads=(Right 5)
-| | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| | | | | | | | |                                                                j_1
-| | | | | | | | |                                                                _) -> i_0 GHC.Classes.== j_1)
-| | | | | | | | |   minReads=(Right 5)
-| | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | choicesBranch [\x_0 -> x_0]
-| | | | | | | | |   minReads=(Right 5)
-| | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | <branch>
-| | | | | | | | | | | call <hidden>
-| | | | | | | | | | |   minReads=(Right 5)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | | | | refJoin <hidden>
-| | | | | | | | | | |   minReads=(Right 0)
-| | | | | | | | | | |   mayRaise=[]
-| | | | | | | | | | <default>
-| | | | | | | | | | | fail []
-| | | | | | | | | | |   minReads=(Left ExceptionFailure)
-| | | | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | <ko>
-| | | | | | | pushInput
-| | | | | | |   minReads=(Right 0)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| | | | | | |                                                                j_1
-| | | | | | |                                                                _) -> i_0 GHC.Classes.== j_1)
-| | | | | | |   minReads=(Right 0)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | choicesBranch [\x_0 -> x_0]
-| | | | | | |   minReads=(Right 0)
-| | | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | | | <branch>
-| | | | | | | | | call <hidden>
-| | | | | | | | |   minReads=(Right 0)
-| | | | | | | | |   mayRaise=[]
-| | | | | | | | | refJoin <hidden>
-| | | | | | | | |   minReads=(Right 0)
-| | | | | | | | |   mayRaise=[]
-| | | | | | | | <default>
-| | | | | | | | | fail []
-| | | | | | | | |   minReads=(Left ExceptionFailure)
-| | | | | | | | |   mayRaise=[ExceptionFailure]
-| | | | <default>
-| | | | | fail []
-| | | | |   minReads=(Left ExceptionFailure)
-| | | | |   mayRaise=[ExceptionFailure]
-let <hidden>
-  minReads=(Right 2)
-  mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> \x_1 -> x_0)
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> \x_1 -> x_0)
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| pushValue '('
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| read ((GHC.Classes.==) '(')
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| call <hidden>
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| ret
-|   minReads=(Right 0)
-|   mayRaise=[]
-let <hidden>
-  minReads=(Right 2)
-  mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> \x_1 -> x_0)
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> \x_1 -> x_0)
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| pushValue ')'
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| read ((GHC.Classes.==) ')')
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| call <hidden>
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| ret
-|   minReads=(Right 0)
-|   mayRaise=[]
-let <hidden>
-  minReads=(Right 2)
-  mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> \x_1 -> x_0)
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> \x_1 -> x_0)
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| pushValue ','
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| read ((GHC.Classes.==) ',')
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| call <hidden>
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| ret
-|   minReads=(Right 0)
-|   mayRaise=[]
-let <hidden>
-  minReads=(Right 2)
-  mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> \x_1 -> x_0)
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> \x_1 -> x_0)
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| pushValue ';'
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| read ((GHC.Classes.==) ';')
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| call <hidden>
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| ret
-|   minReads=(Right 0)
-|   mayRaise=[]
-let <hidden>
-  minReads=(Right 2)
-  mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> \x_1 -> x_0)
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> x_0)
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| call <hidden>
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| join <hidden>
-|   minReads=(Right 0)
-|   mayRaise=[]
-| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| |   minReads=(Right 0)
-| |   mayRaise=[]
-| | ret
-| |   minReads=(Right 0)
-| |   mayRaise=[]
-| catch ExceptionFailure
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| | <ok>
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 5)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue GHC.Tuple.()
-| | |   minReads=(Right 5)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 5)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 5)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | commit ExceptionFailure
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | refJoin <hidden>
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | <ko>
-| | | pushInput
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| | |                                                                j_1
-| | |                                                                _) -> i_0 GHC.Classes.== j_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | choicesBranch [\x_0 -> x_0]
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | | <branch>
-| | | | | call <hidden>
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | | refJoin <hidden>
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | <default>
-| | | | | fail []
-| | | | |   minReads=(Left ExceptionFailure)
-| | | | |   mayRaise=[ExceptionFailure]
-let <hidden>
-  minReads=(Right 2)
-  mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> \x_1 -> x_0)
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> x_0)
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| call <hidden>
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> \x_1 -> x_0)
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> x_0)
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| pushValue ((\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1) (\x_3 -> \x_4 -> x_3 x_4))
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| call <hidden>
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| call <hidden>
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| call <hidden>
-|   minReads=(Right 0)
-|   mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| ret
-|   minReads=(Right 0)
-|   mayRaise=[]
-let <hidden>
-  minReads=(Right 2)
-  mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> \x_1 -> x_0)
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> x_0)
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| catch ExceptionFailure
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| | <ok>
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> x_0)
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | read Parsers.Nandlang.nandIdentStart
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> x_0)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue ((\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1) (\x_3 -> \x_4 -> x_3 x_4))
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | call <hidden>
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | commit ExceptionFailure
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | ret
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | <ko>
-| | | loadInput
-| | |   minReads=(Left ExceptionFailure)
-| | |   mayRaise=[ExceptionFailure]
-| | | fail []
-| | |   minReads=(Left ExceptionFailure)
-| | |   mayRaise=[ExceptionFailure]
-let <hidden>
-  minReads=(Right 4)
-  mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> \x_1 -> x_0)
-|   minReads=(Right 4)
-|   mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> \x_1 -> x_0)
-|   minReads=(Right 4)
-|   mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> x_0)
-|   minReads=(Right 4)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 4)
-|   mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> \x_1 -> x_0)
-|   minReads=(Right 4)
-|   mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> \x_1 -> x_0)
-|   minReads=(Right 4)
-|   mayRaise=[ExceptionFailure]
-| pushValue '{'
-|   minReads=(Right 4)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 4)
-|   mayRaise=[ExceptionFailure]
-| read ((GHC.Classes.==) '{')
-|   minReads=(Right 4)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 3)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 3)
-|   mayRaise=[ExceptionFailure]
-| call <hidden>
-|   minReads=(Right 3)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> \x_1 -> x_0)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> x_0)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| pushValue ((\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1) (\x_3 -> \x_4 -> x_3 x_4))
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| call <hidden>
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| call <hidden>
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| call <hidden>
-|   minReads=(Right 0)
-|   mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> \x_1 -> x_0)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> \x_1 -> x_0)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| pushValue '}'
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| read ((GHC.Classes.==) '}')
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| call <hidden>
-|   minReads=(Right 0)
-|   mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| ret
-|   minReads=(Right 0)
-|   mayRaise=[]
-let <hidden>
-  minReads=(Right 5)
-  mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> \x_1 -> x_0)
-|   minReads=(Right 5)
-|   mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> \x_1 -> x_0)
-|   minReads=(Right 5)
-|   mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> x_0)
-|   minReads=(Right 5)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 5)
-|   mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> \x_1 -> x_0)
-|   minReads=(Right 5)
-|   mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> \x_1 -> x_0)
-|   minReads=(Right 5)
-|   mayRaise=[ExceptionFailure]
-| pushValue '['
-|   minReads=(Right 5)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 5)
-|   mayRaise=[ExceptionFailure]
-| read ((GHC.Classes.==) '[')
-|   minReads=(Right 5)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 4)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 4)
-|   mayRaise=[ExceptionFailure]
-| call <hidden>
-|   minReads=(Right 4)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> \x_1 -> x_0)
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> x_0)
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| call <hidden>
-|   minReads=(Right 2)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> \x_1 -> x_0)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> x_0)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| pushValue ((\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1) (\x_3 -> \x_4 -> x_3 x_4))
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| pushValue GHC.Tuple.()
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| call <hidden>
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| pushValue GHC.Tuple.()
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> \x_1 -> x_0)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> \x_1 -> x_0)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| pushValue ']'
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| read ((GHC.Classes.==) ']')
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| call <hidden>
-|   minReads=(Right 0)
-|   mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| ret
-|   minReads=(Right 0)
-|   mayRaise=[]
-pushValue GHC.Show.show
-  minReads=(Right 1)
-  mayRaise=[ExceptionFailure]
-pushValue (\x_0 -> \x_1 -> x_0)
-  minReads=(Right 1)
-  mayRaise=[ExceptionFailure]
-pushValue (\x_0 -> \x_1 -> x_0)
-  minReads=(Right 1)
-  mayRaise=[ExceptionFailure]
-pushValue (\x_0 -> x_0)
-  minReads=(Right 1)
-  mayRaise=[ExceptionFailure]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 1)
-  mayRaise=[ExceptionFailure]
-call <hidden>
-  minReads=(Right 1)
-  mayRaise=[ExceptionFailure]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-pushValue (\x_0 -> \x_1 -> x_0)
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-pushValue (\x_0 -> x_0)
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-pushValue ((\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1) (\x_3 -> \x_4 -> x_3 x_4))
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-call <hidden>
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-call <hidden>
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 0)
-  mayRaise=[]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 0)
-  mayRaise=[]
-call <hidden>
-  minReads=(Right 0)
-  mayRaise=[]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-join <hidden>
-  minReads=(Right 0)
-  mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| ret
-|   minReads=(Right 0)
-|   mayRaise=[]
-catch ExceptionFailure
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-| <ok>
-| | catch ExceptionFailure
-| |   minReads=(Right 0)
-| |   mayRaise=[]
-| | | <ok>
-| | | | pushInput
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | read ((\x_0 -> \x_1 -> x_0) GHC.Types.True)
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | popValue
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | commit ExceptionFailure
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | loadInput
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | fail []
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | <ko>
-| | | | loadInput
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | pushValue GHC.Tuple.()
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | commit ExceptionFailure
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | refJoin <hidden>
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| <ko>
-| | pushInput
-| |   minReads=(Left ExceptionFailure)
-| |   mayRaise=[ExceptionFailure]
-| | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| |                                                                j_1
-| |                                                                _) -> i_0 GHC.Classes.== j_1)
-| |   minReads=(Left ExceptionFailure)
-| |   mayRaise=[ExceptionFailure]
-| | choicesBranch [\x_0 -> x_0]
-| |   minReads=(Left ExceptionFailure)
-| |   mayRaise=[ExceptionFailure]
-| | | <branch>
-| | | | fail [FailureEnd]
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | <default>
-| | | | fail []
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
diff --git a/test/Golden/Machine/G15.expected.txt b/test/Golden/Machine/G15.expected.txt
deleted file mode 100644
--- a/test/Golden/Machine/G15.expected.txt
+++ /dev/null
@@ -1,96 +0,0 @@
-pushValue GHC.Show.show
-  minReads=(Right 2)
-  mayRaise=[ExceptionFailure]
-pushValue (\x_0 -> \x_1 -> x_0)
-  minReads=(Right 2)
-  mayRaise=[ExceptionFailure]
-join <hidden>
-  minReads=(Right 1)
-  mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> \x_1 -> x_0)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| pushValue 'c'
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| read ((GHC.Classes.==) 'c')
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| ret
-|   minReads=(Right 0)
-|   mayRaise=[]
-catch ExceptionFailure
-  minReads=(Right 1)
-  mayRaise=[ExceptionFailure]
-| <ok>
-| | pushValue (\x_0 -> \x_1 -> x_0)
-| |   minReads=(Right 1)
-| |   mayRaise=[ExceptionFailure]
-| | pushValue 'a'
-| |   minReads=(Right 1)
-| |   mayRaise=[ExceptionFailure]
-| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| |   minReads=(Right 1)
-| |   mayRaise=[ExceptionFailure]
-| | read ((GHC.Classes.==) 'a')
-| |   minReads=(Right 1)
-| |   mayRaise=[ExceptionFailure]
-| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| |   minReads=(Right 0)
-| |   mayRaise=[]
-| | commit ExceptionFailure
-| |   minReads=(Right 0)
-| |   mayRaise=[]
-| | refJoin <hidden>
-| |   minReads=(Right 0)
-| |   mayRaise=[]
-| <ko>
-| | pushInput
-| |   minReads=(Right 1)
-| |   mayRaise=[ExceptionFailure]
-| | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| |                                                                j_1
-| |                                                                _) -> i_0 GHC.Classes.== j_1)
-| |   minReads=(Right 1)
-| |   mayRaise=[ExceptionFailure]
-| | choicesBranch [\x_0 -> x_0]
-| |   minReads=(Right 1)
-| |   mayRaise=[ExceptionFailure]
-| | | <branch>
-| | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | |   minReads=(Right 1)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | pushValue 'b'
-| | | |   minReads=(Right 1)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | |   minReads=(Right 1)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | read ((GHC.Classes.==) 'b')
-| | | |   minReads=(Right 1)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | refJoin <hidden>
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | <default>
-| | | | fail []
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
diff --git a/test/Golden/Machine/G16.expected.txt b/test/Golden/Machine/G16.expected.txt
deleted file mode 100644
--- a/test/Golden/Machine/G16.expected.txt
+++ /dev/null
@@ -1,144 +0,0 @@
-pushValue GHC.Show.show
-  minReads=(Right 2)
-  mayRaise=[ExceptionFailure]
-pushValue (\x_0 -> \x_1 -> x_0)
-  minReads=(Right 2)
-  mayRaise=[ExceptionFailure]
-join <hidden>
-  minReads=(Right 1)
-  mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| pushValue (\x_0 -> \x_1 -> x_0)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| pushValue 'd'
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| read ((GHC.Classes.==) 'd')
-|   minReads=(Right 1)
-|   mayRaise=[ExceptionFailure]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| ret
-|   minReads=(Right 0)
-|   mayRaise=[]
-catch ExceptionFailure
-  minReads=(Right 1)
-  mayRaise=[ExceptionFailure]
-| <ok>
-| | join <hidden>
-| |   minReads=(Right 1)
-| |   mayRaise=[ExceptionFailure]
-| | | commit ExceptionFailure
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | refJoin <hidden>
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | catch ExceptionFailure
-| |   minReads=(Right 1)
-| |   mayRaise=[ExceptionFailure]
-| | | <ok>
-| | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | |   minReads=(Right 1)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | pushValue 'a'
-| | | |   minReads=(Right 1)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | |   minReads=(Right 1)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | read ((GHC.Classes.==) 'a')
-| | | |   minReads=(Right 1)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | commit ExceptionFailure
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | refJoin <hidden>
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | <ko>
-| | | | pushInput
-| | | |   minReads=(Right 1)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| | | |                                                                j_1
-| | | |                                                                _) -> i_0 GHC.Classes.== j_1)
-| | | |   minReads=(Right 1)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | choicesBranch [\x_0 -> x_0]
-| | | |   minReads=(Right 1)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | | <branch>
-| | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | |   minReads=(Right 1)
-| | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | pushValue 'b'
-| | | | | |   minReads=(Right 1)
-| | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | |   minReads=(Right 1)
-| | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | read ((GHC.Classes.==) 'b')
-| | | | | |   minReads=(Right 1)
-| | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | |   minReads=(Right 0)
-| | | | | |   mayRaise=[]
-| | | | | | refJoin <hidden>
-| | | | | |   minReads=(Right 0)
-| | | | | |   mayRaise=[]
-| | | | | <default>
-| | | | | | fail []
-| | | | | |   minReads=(Left ExceptionFailure)
-| | | | | |   mayRaise=[ExceptionFailure]
-| <ko>
-| | pushInput
-| |   minReads=(Right 1)
-| |   mayRaise=[ExceptionFailure]
-| | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| |                                                                j_1
-| |                                                                _) -> i_0 GHC.Classes.== j_1)
-| |   minReads=(Right 1)
-| |   mayRaise=[ExceptionFailure]
-| | choicesBranch [\x_0 -> x_0]
-| |   minReads=(Right 1)
-| |   mayRaise=[ExceptionFailure]
-| | | <branch>
-| | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | |   minReads=(Right 1)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | pushValue 'c'
-| | | |   minReads=(Right 1)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | |   minReads=(Right 1)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | read ((GHC.Classes.==) 'c')
-| | | |   minReads=(Right 1)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | refJoin <hidden>
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | <default>
-| | | | fail []
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
diff --git a/test/Golden/Machine/G2.expected.txt b/test/Golden/Machine/G2.expected.txt
deleted file mode 100644
--- a/test/Golden/Machine/G2.expected.txt
+++ /dev/null
@@ -1,98 +0,0 @@
-pushValue GHC.Show.show
-  minReads=(Right 3)
-  mayRaise=[ExceptionFailure]
-catch ExceptionFailure
-  minReads=(Right 3)
-  mayRaise=[ExceptionFailure]
-| <ok>
-| | pushValue (GHC.Types.:)
-| |   minReads=(Right 3)
-| |   mayRaise=[ExceptionFailure]
-| | pushValue (\x_0 -> \x_1 -> x_0)
-| |   minReads=(Right 3)
-| |   mayRaise=[ExceptionFailure]
-| | pushValue 'a'
-| |   minReads=(Right 3)
-| |   mayRaise=[ExceptionFailure]
-| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| |   minReads=(Right 3)
-| |   mayRaise=[ExceptionFailure]
-| | read ((GHC.Classes.==) 'a')
-| |   minReads=(Right 3)
-| |   mayRaise=[ExceptionFailure]
-| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| |   minReads=(Right 2)
-| |   mayRaise=[ExceptionFailure]
-| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| |   minReads=(Right 2)
-| |   mayRaise=[ExceptionFailure]
-| | pushValue (GHC.Types.:)
-| |   minReads=(Right 2)
-| |   mayRaise=[ExceptionFailure]
-| | pushValue (\x_0 -> \x_1 -> x_0)
-| |   minReads=(Right 2)
-| |   mayRaise=[ExceptionFailure]
-| | pushValue 'b'
-| |   minReads=(Right 2)
-| |   mayRaise=[ExceptionFailure]
-| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| |   minReads=(Right 2)
-| |   mayRaise=[ExceptionFailure]
-| | read ((GHC.Classes.==) 'b')
-| |   minReads=(Right 2)
-| |   mayRaise=[ExceptionFailure]
-| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| |   minReads=(Right 1)
-| |   mayRaise=[ExceptionFailure]
-| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| |   minReads=(Right 1)
-| |   mayRaise=[ExceptionFailure]
-| | pushValue (GHC.Types.:)
-| |   minReads=(Right 1)
-| |   mayRaise=[ExceptionFailure]
-| | pushValue (\x_0 -> \x_1 -> x_0)
-| |   minReads=(Right 1)
-| |   mayRaise=[ExceptionFailure]
-| | pushValue 'c'
-| |   minReads=(Right 1)
-| |   mayRaise=[ExceptionFailure]
-| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| |   minReads=(Right 1)
-| |   mayRaise=[ExceptionFailure]
-| | read ((GHC.Classes.==) 'c')
-| |   minReads=(Right 1)
-| |   mayRaise=[ExceptionFailure]
-| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| |   minReads=(Right 0)
-| |   mayRaise=[]
-| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| |   minReads=(Right 0)
-| |   mayRaise=[]
-| | pushValue GHC.Types.[]
-| |   minReads=(Right 0)
-| |   mayRaise=[]
-| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| |   minReads=(Right 0)
-| |   mayRaise=[]
-| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| |   minReads=(Right 0)
-| |   mayRaise=[]
-| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| |   minReads=(Right 0)
-| |   mayRaise=[]
-| | commit ExceptionFailure
-| |   minReads=(Right 0)
-| |   mayRaise=[]
-| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| |   minReads=(Right 0)
-| |   mayRaise=[]
-| | ret
-| |   minReads=(Right 0)
-| |   mayRaise=[]
-| <ko>
-| | loadInput
-| |   minReads=(Left ExceptionFailure)
-| |   mayRaise=[ExceptionFailure]
-| | fail []
-| |   minReads=(Left ExceptionFailure)
-| |   mayRaise=[ExceptionFailure]
diff --git a/test/Golden/Machine/G3.expected.txt b/test/Golden/Machine/G3.expected.txt
deleted file mode 100644
--- a/test/Golden/Machine/G3.expected.txt
+++ /dev/null
@@ -1,87 +0,0 @@
-let <hidden>
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-| catch ExceptionFailure
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| | <ok>
-| | | pushValue (\x_0 -> \x_1 -> \x_2 -> x_0 (x_1 x_2))
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (GHC.Types.:)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue 'a'
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | read ((GHC.Classes.==) 'a')
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | commit ExceptionFailure
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | ret
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | <ko>
-| | | pushInput
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| | |                                                                j_1
-| | |                                                                _) -> i_0 GHC.Classes.== j_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | choicesBranch [\x_0 -> x_0]
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | | <branch>
-| | | | | pushValue (\x_0 -> x_0)
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | | ret
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | <default>
-| | | | | fail []
-| | | | |   minReads=(Left ExceptionFailure)
-| | | | |   mayRaise=[ExceptionFailure]
-pushValue GHC.Show.show
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-call <hidden>
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-pushValue GHC.Types.[]
-  minReads=(Right 0)
-  mayRaise=[]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 0)
-  mayRaise=[]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 0)
-  mayRaise=[]
-ret
-  minReads=(Right 0)
-  mayRaise=[]
diff --git a/test/Golden/Machine/G4.expected.txt b/test/Golden/Machine/G4.expected.txt
deleted file mode 100644
--- a/test/Golden/Machine/G4.expected.txt
+++ /dev/null
@@ -1,206 +0,0 @@
-let <hidden>
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-| catch ExceptionFailure
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| | <ok>
-| | | pushValue (\x_0 -> \x_1 -> \x_2 -> x_0 (x_1 x_2))
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (GHC.Types.:)
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | commit ExceptionFailure
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | ret
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | <ko>
-| | | pushInput
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| | |                                                                j_1
-| | |                                                                _) -> i_0 GHC.Classes.== j_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | choicesBranch [\x_0 -> x_0]
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | | <branch>
-| | | | | pushValue (\x_0 -> x_0)
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | | ret
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | <default>
-| | | | | fail []
-| | | | |   minReads=(Left ExceptionFailure)
-| | | | |   mayRaise=[ExceptionFailure]
-let <hidden>
-  minReads=(Right 4)
-  mayRaise=[ExceptionFailure]
-| catch ExceptionFailure
-|   minReads=(Right 4)
-|   mayRaise=[ExceptionFailure]
-| | <ok>
-| | | pushValue (GHC.Types.:)
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue 'a'
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | read ((GHC.Classes.==) 'a')
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 3)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 3)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (GHC.Types.:)
-| | |   minReads=(Right 3)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 3)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue 'b'
-| | |   minReads=(Right 3)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 3)
-| | |   mayRaise=[ExceptionFailure]
-| | | read ((GHC.Classes.==) 'b')
-| | |   minReads=(Right 3)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (GHC.Types.:)
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue 'c'
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | read ((GHC.Classes.==) 'c')
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (GHC.Types.:)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue 'd'
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | read ((GHC.Classes.==) 'd')
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | pushValue GHC.Types.[]
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | commit ExceptionFailure
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | ret
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | <ko>
-| | | loadInput
-| | |   minReads=(Left ExceptionFailure)
-| | |   mayRaise=[ExceptionFailure]
-| | | fail []
-| | |   minReads=(Left ExceptionFailure)
-| | |   mayRaise=[ExceptionFailure]
-pushValue GHC.Show.show
-  minReads=(Right 4)
-  mayRaise=[ExceptionFailure]
-pushValue (GHC.Types.:)
-  minReads=(Right 4)
-  mayRaise=[ExceptionFailure]
-call <hidden>
-  minReads=(Right 4)
-  mayRaise=[ExceptionFailure]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-call <hidden>
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-pushValue GHC.Types.[]
-  minReads=(Right 0)
-  mayRaise=[]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 0)
-  mayRaise=[]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 0)
-  mayRaise=[]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 0)
-  mayRaise=[]
-ret
-  minReads=(Right 0)
-  mayRaise=[]
diff --git a/test/Golden/Machine/G5.expected.txt b/test/Golden/Machine/G5.expected.txt
deleted file mode 100644
--- a/test/Golden/Machine/G5.expected.txt
+++ /dev/null
@@ -1,277 +0,0 @@
-let <hidden>
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-| catch ExceptionFailure
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| | <ok>
-| | | pushValue (\x_0 -> \x_1 -> \x_2 -> x_0 (x_1 x_2))
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (GHC.Types.:)
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | commit ExceptionFailure
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | ret
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | <ko>
-| | | pushInput
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| | |                                                                j_1
-| | |                                                                _) -> i_0 GHC.Classes.== j_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | choicesBranch [\x_0 -> x_0]
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | | <branch>
-| | | | | pushValue (\x_0 -> x_0)
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | | ret
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | <default>
-| | | | | fail []
-| | | | |   minReads=(Left ExceptionFailure)
-| | | | |   mayRaise=[ExceptionFailure]
-let <hidden>
-  minReads=(Right 4)
-  mayRaise=[ExceptionFailure]
-| catch ExceptionFailure
-|   minReads=(Right 4)
-|   mayRaise=[ExceptionFailure]
-| | <ok>
-| | | pushValue (GHC.Types.:)
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue 'a'
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | read ((GHC.Classes.==) 'a')
-| | |   minReads=(Right 4)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 3)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 3)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (GHC.Types.:)
-| | |   minReads=(Right 3)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 3)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue 'b'
-| | |   minReads=(Right 3)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 3)
-| | |   mayRaise=[ExceptionFailure]
-| | | read ((GHC.Classes.==) 'b')
-| | |   minReads=(Right 3)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (GHC.Types.:)
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue 'c'
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | read ((GHC.Classes.==) 'c')
-| | |   minReads=(Right 2)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (GHC.Types.:)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue 'd'
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | read ((GHC.Classes.==) 'd')
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | pushValue GHC.Types.[]
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | commit ExceptionFailure
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | ret
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | <ko>
-| | | loadInput
-| | |   minReads=(Left ExceptionFailure)
-| | |   mayRaise=[ExceptionFailure]
-| | | fail []
-| | |   minReads=(Left ExceptionFailure)
-| | |   mayRaise=[ExceptionFailure]
-pushValue GHC.Show.show
-  minReads=(Right 4)
-  mayRaise=[ExceptionFailure]
-pushValue (\x_0 -> \x_1 -> x_0)
-  minReads=(Right 4)
-  mayRaise=[ExceptionFailure]
-pushValue (GHC.Types.:)
-  minReads=(Right 4)
-  mayRaise=[ExceptionFailure]
-call <hidden>
-  minReads=(Right 4)
-  mayRaise=[ExceptionFailure]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-call <hidden>
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-pushValue GHC.Types.[]
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-join <hidden>
-  minReads=(Right 0)
-  mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| ret
-|   minReads=(Right 0)
-|   mayRaise=[]
-catch ExceptionFailure
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-| <ok>
-| | catch ExceptionFailure
-| |   minReads=(Right 0)
-| |   mayRaise=[]
-| | | <ok>
-| | | | pushInput
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | read ((\x_0 -> \x_1 -> x_0) GHC.Types.True)
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | popValue
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | commit ExceptionFailure
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | loadInput
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | fail []
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | <ko>
-| | | | loadInput
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | pushValue GHC.Tuple.()
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | commit ExceptionFailure
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | refJoin <hidden>
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| <ko>
-| | pushInput
-| |   minReads=(Left ExceptionFailure)
-| |   mayRaise=[ExceptionFailure]
-| | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| |                                                                j_1
-| |                                                                _) -> i_0 GHC.Classes.== j_1)
-| |   minReads=(Left ExceptionFailure)
-| |   mayRaise=[ExceptionFailure]
-| | choicesBranch [\x_0 -> x_0]
-| |   minReads=(Left ExceptionFailure)
-| |   mayRaise=[ExceptionFailure]
-| | | <branch>
-| | | | fail [FailureEnd]
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | <default>
-| | | | fail []
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
diff --git a/test/Golden/Machine/G6.expected.txt b/test/Golden/Machine/G6.expected.txt
deleted file mode 100644
--- a/test/Golden/Machine/G6.expected.txt
+++ /dev/null
@@ -1,144 +0,0 @@
-pushValue GHC.Show.show
-  minReads=(Right 2)
-  mayRaise=[ExceptionFailure]
-join <hidden>
-  minReads=(Right 0)
-  mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| ret
-|   minReads=(Right 0)
-|   mayRaise=[]
-catch ExceptionFailure
-  minReads=(Right 2)
-  mayRaise=[ExceptionFailure]
-| <ok>
-| | pushValue (GHC.Types.:)
-| |   minReads=(Right 2)
-| |   mayRaise=[ExceptionFailure]
-| | pushValue (\x_0 -> \x_1 -> x_0)
-| |   minReads=(Right 2)
-| |   mayRaise=[ExceptionFailure]
-| | pushValue 'a'
-| |   minReads=(Right 2)
-| |   mayRaise=[ExceptionFailure]
-| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| |   minReads=(Right 2)
-| |   mayRaise=[ExceptionFailure]
-| | read ((GHC.Classes.==) 'a')
-| |   minReads=(Right 2)
-| |   mayRaise=[ExceptionFailure]
-| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| |   minReads=(Right 1)
-| |   mayRaise=[ExceptionFailure]
-| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| |   minReads=(Right 1)
-| |   mayRaise=[ExceptionFailure]
-| | pushValue (GHC.Types.:)
-| |   minReads=(Right 1)
-| |   mayRaise=[ExceptionFailure]
-| | pushValue (\x_0 -> \x_1 -> x_0)
-| |   minReads=(Right 1)
-| |   mayRaise=[ExceptionFailure]
-| | pushValue 'a'
-| |   minReads=(Right 1)
-| |   mayRaise=[ExceptionFailure]
-| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| |   minReads=(Right 1)
-| |   mayRaise=[ExceptionFailure]
-| | read ((GHC.Classes.==) 'a')
-| |   minReads=(Right 1)
-| |   mayRaise=[ExceptionFailure]
-| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| |   minReads=(Right 0)
-| |   mayRaise=[]
-| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| |   minReads=(Right 0)
-| |   mayRaise=[]
-| | pushValue GHC.Types.[]
-| |   minReads=(Right 0)
-| |   mayRaise=[]
-| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| |   minReads=(Right 0)
-| |   mayRaise=[]
-| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| |   minReads=(Right 0)
-| |   mayRaise=[]
-| | commit ExceptionFailure
-| |   minReads=(Right 0)
-| |   mayRaise=[]
-| | refJoin <hidden>
-| |   minReads=(Right 0)
-| |   mayRaise=[]
-| <ko>
-| | pushInput
-| |   minReads=(Right 2)
-| |   mayRaise=[ExceptionFailure]
-| | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| |                                                                j_1
-| |                                                                _) -> i_0 GHC.Classes.== j_1)
-| |   minReads=(Right 2)
-| |   mayRaise=[ExceptionFailure]
-| | choicesBranch [\x_0 -> x_0]
-| |   minReads=(Right 2)
-| |   mayRaise=[ExceptionFailure]
-| | | <branch>
-| | | | pushValue (GHC.Types.:)
-| | | |   minReads=(Right 2)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | |   minReads=(Right 2)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | pushValue 'a'
-| | | |   minReads=(Right 2)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | |   minReads=(Right 2)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | read ((GHC.Classes.==) 'a')
-| | | |   minReads=(Right 2)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | |   minReads=(Right 1)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | |   minReads=(Right 1)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | pushValue (GHC.Types.:)
-| | | |   minReads=(Right 1)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | |   minReads=(Right 1)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | pushValue 'b'
-| | | |   minReads=(Right 1)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | |   minReads=(Right 1)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | read ((GHC.Classes.==) 'b')
-| | | |   minReads=(Right 1)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | pushValue GHC.Types.[]
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | refJoin <hidden>
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | <default>
-| | | | fail []
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
diff --git a/test/Golden/Machine/G7.expected.txt b/test/Golden/Machine/G7.expected.txt
deleted file mode 100644
--- a/test/Golden/Machine/G7.expected.txt
+++ /dev/null
@@ -1,172 +0,0 @@
-pushValue GHC.Show.show
-  minReads=(Right 2)
-  mayRaise=[ExceptionFailure]
-join <hidden>
-  minReads=(Right 0)
-  mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| ret
-|   minReads=(Right 0)
-|   mayRaise=[]
-catch ExceptionFailure
-  minReads=(Right 2)
-  mayRaise=[ExceptionFailure]
-| <ok>
-| | catch ExceptionFailure
-| |   minReads=(Right 2)
-| |   mayRaise=[ExceptionFailure]
-| | | <ok>
-| | | | pushValue (GHC.Types.:)
-| | | |   minReads=(Right 2)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | |   minReads=(Right 2)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | pushValue 'a'
-| | | |   minReads=(Right 2)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | |   minReads=(Right 2)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | read ((GHC.Classes.==) 'a')
-| | | |   minReads=(Right 2)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | |   minReads=(Right 1)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | |   minReads=(Right 1)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | pushValue (GHC.Types.:)
-| | | |   minReads=(Right 1)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | |   minReads=(Right 1)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | pushValue 'a'
-| | | |   minReads=(Right 1)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | |   minReads=(Right 1)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | read ((GHC.Classes.==) 'a')
-| | | |   minReads=(Right 1)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | pushValue GHC.Types.[]
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | commit ExceptionFailure
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | commit ExceptionFailure
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | refJoin <hidden>
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | <ko>
-| | | | loadInput
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | fail []
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| <ko>
-| | pushInput
-| |   minReads=(Right 2)
-| |   mayRaise=[ExceptionFailure]
-| | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| |                                                                j_1
-| |                                                                _) -> i_0 GHC.Classes.== j_1)
-| |   minReads=(Right 2)
-| |   mayRaise=[ExceptionFailure]
-| | choicesBranch [\x_0 -> x_0]
-| |   minReads=(Right 2)
-| |   mayRaise=[ExceptionFailure]
-| | | <branch>
-| | | | catch ExceptionFailure
-| | | |   minReads=(Right 2)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | | <ok>
-| | | | | | pushValue (GHC.Types.:)
-| | | | | |   minReads=(Right 2)
-| | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | |   minReads=(Right 2)
-| | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | pushValue 'a'
-| | | | | |   minReads=(Right 2)
-| | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | |   minReads=(Right 2)
-| | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | read ((GHC.Classes.==) 'a')
-| | | | | |   minReads=(Right 2)
-| | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | |   minReads=(Right 1)
-| | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | |   minReads=(Right 1)
-| | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | pushValue (GHC.Types.:)
-| | | | | |   minReads=(Right 1)
-| | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | pushValue (\x_0 -> \x_1 -> x_0)
-| | | | | |   minReads=(Right 1)
-| | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | pushValue 'b'
-| | | | | |   minReads=(Right 1)
-| | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | |   minReads=(Right 1)
-| | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | read ((GHC.Classes.==) 'b')
-| | | | | |   minReads=(Right 1)
-| | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | |   minReads=(Right 0)
-| | | | | |   mayRaise=[]
-| | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | |   minReads=(Right 0)
-| | | | | |   mayRaise=[]
-| | | | | | pushValue GHC.Types.[]
-| | | | | |   minReads=(Right 0)
-| | | | | |   mayRaise=[]
-| | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | |   minReads=(Right 0)
-| | | | | |   mayRaise=[]
-| | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | | | | |   minReads=(Right 0)
-| | | | | |   mayRaise=[]
-| | | | | | commit ExceptionFailure
-| | | | | |   minReads=(Right 0)
-| | | | | |   mayRaise=[]
-| | | | | | refJoin <hidden>
-| | | | | |   minReads=(Right 0)
-| | | | | |   mayRaise=[]
-| | | | | <ko>
-| | | | | | loadInput
-| | | | | |   minReads=(Left ExceptionFailure)
-| | | | | |   mayRaise=[ExceptionFailure]
-| | | | | | fail []
-| | | | | |   minReads=(Left ExceptionFailure)
-| | | | | |   mayRaise=[ExceptionFailure]
-| | | <default>
-| | | | fail []
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
diff --git a/test/Golden/Machine/G8.expected.txt b/test/Golden/Machine/G8.expected.txt
deleted file mode 100644
--- a/test/Golden/Machine/G8.expected.txt
+++ /dev/null
@@ -1,158 +0,0 @@
-let <hidden>
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-| catch ExceptionFailure
-|   minReads=(Right 0)
-|   mayRaise=[ExceptionFailure]
-| | <ok>
-| | | pushValue (\x_0 -> \x_1 -> \x_2 -> x_0 (x_1 x_2))
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (GHC.Types.:)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue (\x_0 -> \x_1 -> x_0)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | pushValue 'r'
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | read ((GHC.Classes.==) 'r')
-| | |   minReads=(Right 1)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | call <hidden>
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | commit ExceptionFailure
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | | ret
-| | |   minReads=(Right 0)
-| | |   mayRaise=[]
-| | <ko>
-| | | pushInput
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| | |                                                                j_1
-| | |                                                                _) -> i_0 GHC.Classes.== j_1)
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | choicesBranch [\x_0 -> x_0]
-| | |   minReads=(Right 0)
-| | |   mayRaise=[ExceptionFailure]
-| | | | <branch>
-| | | | | pushValue (\x_0 -> x_0)
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | | ret
-| | | | |   minReads=(Right 0)
-| | | | |   mayRaise=[]
-| | | | <default>
-| | | | | fail []
-| | | | |   minReads=(Left ExceptionFailure)
-| | | | |   mayRaise=[ExceptionFailure]
-pushValue GHC.Show.show
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-pushValue (\x_0 -> \x_1 -> x_0)
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-call <hidden>
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-pushValue GHC.Types.[]
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-join <hidden>
-  minReads=(Right 0)
-  mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| ret
-|   minReads=(Right 0)
-|   mayRaise=[]
-catch ExceptionFailure
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-| <ok>
-| | catch ExceptionFailure
-| |   minReads=(Right 0)
-| |   mayRaise=[]
-| | | <ok>
-| | | | pushInput
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | read ((\x_0 -> \x_1 -> x_0) GHC.Types.True)
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | popValue
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | commit ExceptionFailure
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | loadInput
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | fail []
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | <ko>
-| | | | loadInput
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | pushValue GHC.Tuple.()
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | commit ExceptionFailure
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | refJoin <hidden>
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| <ko>
-| | pushInput
-| |   minReads=(Left ExceptionFailure)
-| |   mayRaise=[ExceptionFailure]
-| | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| |                                                                j_1
-| |                                                                _) -> i_0 GHC.Classes.== j_1)
-| |   minReads=(Left ExceptionFailure)
-| |   mayRaise=[ExceptionFailure]
-| | choicesBranch [\x_0 -> x_0]
-| |   minReads=(Left ExceptionFailure)
-| |   mayRaise=[ExceptionFailure]
-| | | <branch>
-| | | | fail [FailureEnd]
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | <default>
-| | | | fail []
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
diff --git a/test/Golden/Machine/G9.expected.txt b/test/Golden/Machine/G9.expected.txt
deleted file mode 100644
--- a/test/Golden/Machine/G9.expected.txt
+++ /dev/null
@@ -1,71 +0,0 @@
-pushValue GHC.Show.show
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-join <hidden>
-  minReads=(Right 0)
-  mayRaise=[]
-| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
-|   minReads=(Right 0)
-|   mayRaise=[]
-| ret
-|   minReads=(Right 0)
-|   mayRaise=[]
-catch ExceptionFailure
-  minReads=(Right 0)
-  mayRaise=[ExceptionFailure]
-| <ok>
-| | catch ExceptionFailure
-| |   minReads=(Right 0)
-| |   mayRaise=[]
-| | | <ok>
-| | | | pushInput
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | read ((\x_0 -> \x_1 -> x_0) GHC.Types.True)
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | popValue
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | commit ExceptionFailure
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | loadInput
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | | fail []
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | <ko>
-| | | | loadInput
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | pushValue GHC.Tuple.()
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | commit ExceptionFailure
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| | | | refJoin <hidden>
-| | | |   minReads=(Right 0)
-| | | |   mayRaise=[]
-| <ko>
-| | pushInput
-| |   minReads=(Left ExceptionFailure)
-| |   mayRaise=[ExceptionFailure]
-| | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
-| |                                                                j_1
-| |                                                                _) -> i_0 GHC.Classes.== j_1)
-| |   minReads=(Left ExceptionFailure)
-| |   mayRaise=[ExceptionFailure]
-| | choicesBranch [\x_0 -> x_0]
-| |   minReads=(Left ExceptionFailure)
-| |   mayRaise=[ExceptionFailure]
-| | | <branch>
-| | | | fail [FailureEnd]
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
-| | | <default>
-| | | | fail []
-| | | |   minReads=(Left ExceptionFailure)
-| | | |   mayRaise=[ExceptionFailure]
diff --git a/test/Golden/Parser.hs b/test/Golden/Parser.hs
deleted file mode 100644
--- a/test/Golden/Parser.hs
+++ /dev/null
@@ -1,86 +0,0 @@
-{-# LANGUAGE DataKinds #-} -- For using P.viewGrammar
-{-# LANGUAGE FlexibleContexts #-} -- For using P.Grammar Char
-{-# LANGUAGE Rank2Types #-}
-{-# LANGUAGE TypeApplications #-}
--- For TH splices
-{-# LANGUAGE TemplateHaskell #-}
-{-# LANGUAGE Rank2Types #-}
-{-# LANGUAGE ScopedTypeVariables #-}
-{-# LANGUAGE UnboxedTuples #-}
-{-# OPTIONS_GHC -Wno-missing-signatures #-}
-{-# OPTIONS_GHC -Wno-unused-local-binds #-}
-{-# OPTIONS_GHC -Wno-unused-matches #-}
-module Golden.Parser where
-
-import Control.Monad (Monad(..))
-import Data.Either (Either(..))
-import Data.Function (($))
-import Data.Functor ((<$>))
-import Data.Int (Int)
-import Data.Semigroup (Semigroup(..))
-import Data.String (String, IsString(..))
-import Data.Text (Text)
-import Data.Text.IO (readFile)
-import System.FilePath ((<.>), (</>), dropExtensions, takeBaseName)
-import System.IO.Unsafe (unsafePerformIO)
-import Test.Tasty
-import Test.Tasty.Golden
-import Text.Show (Show(..))
-import qualified Control.Exception as IO
-import qualified Data.List as List
-import qualified System.Directory as IO
-import qualified System.IO.Error as IO
-import qualified Language.Haskell.TH as TH
-
-import qualified Symantic.Parser as P
-import Golden.Utils
-import Golden.Splice
-
-goldens :: TestTree
-goldens = testGroup "Parser" $
-  (\f -> List.zipWith f parsers [1::Int ..]) $ \p g ->
-  -- Collect the existing files: test/Golden/Parser/G*.input.txt
-  let parserDir = getGoldenDir $ "Parser/G"<>show g in
-  let inputs =
-        ((parserDir </>) <$>) $
-        List.sort $
-        List.filter (List.isSuffixOf ".input.txt") $
-        unsafePerformIO $
-          IO.catchIOError
-            (IO.listDirectory parserDir)
-            (\exn ->
-              if IO.isDoesNotExistError exn
-              then return []
-              else IO.throwIO exn
-            ) in
-  testGroup ("G"<>show g) $ (<$> inputs) $ \inp ->
-    goldenVsStringDiff (takeBaseName (dropExtensions inp)) goldenDiff
-      (dropExtensions inp<.>"expected.txt") $ do
-      input <- readFile inp
-      return $ fromString $
-        case p input of
-          Left err -> show err
-          Right a -> a
-
-parsers :: [Text -> Either (P.ParsingError Text) String]
-parsers =
-  [ p1, p2, p3, p4, p5, p6, p7, p8, p9
-  , p10, p11, p12, p13, p14, p15, p16
-  ]
-
-p1 = $$(TH.Code $ TH.runIO s1)
-p2 = $$(TH.Code $ TH.runIO s2)
-p3 = $$(TH.Code $ TH.runIO s3)
-p4 = $$(TH.Code $ TH.runIO s4)
-p5 = $$(TH.Code $ TH.runIO s5)
-p6 = $$(TH.Code $ TH.runIO s6)
-p7 = $$(TH.Code $ TH.runIO s7)
-p8 = $$(TH.Code $ TH.runIO s8)
-p9 = $$(TH.Code $ TH.runIO s9)
-p10 = $$(TH.Code $ TH.runIO s10)
-p11 = $$(TH.Code $ TH.runIO s11)
-p12 = $$(TH.Code $ TH.runIO s12)
-p13 = $$(TH.Code $ TH.runIO s13)
-p14 = $$(TH.Code $ TH.runIO s14)
-p15 = $$(TH.Code $ TH.runIO s15)
-p16 = $$(TH.Code $ TH.runIO s16)
diff --git a/test/Golden/Parser/G1/P1.expected.txt b/test/Golden/Parser/G1/P1.expected.txt
deleted file mode 100644
--- a/test/Golden/Parser/G1/P1.expected.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-'a'
diff --git a/test/Golden/Parser/G1/P1.input.txt b/test/Golden/Parser/G1/P1.input.txt
deleted file mode 100644
--- a/test/Golden/Parser/G1/P1.input.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-a
diff --git a/test/Golden/Parser/G10/P1.expected.txt b/test/Golden/Parser/G10/P1.expected.txt
deleted file mode 100644
--- a/test/Golden/Parser/G10/P1.expected.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-ParsingErrorStandard {parsingErrorOffset = 0, parsingErrorException = ExceptionFailure, parsingErrorUnexpected = Just 'c', parsingErrorExpecting = fromList [FailureToken 'a',FailureToken 'b']}
diff --git a/test/Golden/Parser/G10/P1.input.txt b/test/Golden/Parser/G10/P1.input.txt
deleted file mode 100644
--- a/test/Golden/Parser/G10/P1.input.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-c
diff --git a/test/Golden/Parser/G11/P1.expected.txt b/test/Golden/Parser/G11/P1.expected.txt
deleted file mode 100644
--- a/test/Golden/Parser/G11/P1.expected.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-ParsingErrorStandard {parsingErrorOffset = 4, parsingErrorException = ExceptionFailure, parsingErrorUnexpected = Just 'c', parsingErrorExpecting = fromList [FailureToken 'a',FailureToken 'b']}
diff --git a/test/Golden/Parser/G11/P1.input.txt b/test/Golden/Parser/G11/P1.input.txt
deleted file mode 100644
--- a/test/Golden/Parser/G11/P1.input.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-aaaac
diff --git a/test/Golden/Parser/G12/P1.expected.txt b/test/Golden/Parser/G12/P1.expected.txt
deleted file mode 100644
--- a/test/Golden/Parser/G12/P1.expected.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-"baacbccbaa"
diff --git a/test/Golden/Parser/G12/P1.input.txt b/test/Golden/Parser/G12/P1.input.txt
deleted file mode 100644
--- a/test/Golden/Parser/G12/P1.input.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-baacbccbaa
diff --git a/test/Golden/Parser/G13/P1.expected.txt b/test/Golden/Parser/G13/P1.expected.txt
deleted file mode 100644
--- a/test/Golden/Parser/G13/P1.expected.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-[Increment,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Loop [Forward,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Forward,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Forward,Increment,Increment,Increment,Forward,Increment,Backward,Backward,Backward,Backward,Decrement],Forward,Increment,Increment,Output,Forward,Increment,Output,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Output,Output,Increment,Increment,Increment,Output,Forward,Increment,Increment,Output,Backward,Backward,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Output,Forward,Output,Increment,Increment,Increment,Output,Decrement,Decrement,Decrement,Decrement,Decrement,Decrement,Output,Decrement,Decrement,Decrement,Decrement,Decrement,Decrement,Decrement,Decrement,Output,Forward,Increment,Output,Forward,Output]
diff --git a/test/Golden/Parser/G13/P1.input.txt b/test/Golden/Parser/G13/P1.input.txt
deleted file mode 100644
--- a/test/Golden/Parser/G13/P1.input.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
diff --git a/test/Golden/Parser/G13/P2.expected.txt b/test/Golden/Parser/G13/P2.expected.txt
deleted file mode 100644
--- a/test/Golden/Parser/G13/P2.expected.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-[Loop [Decrement]]
diff --git a/test/Golden/Parser/G13/P2.input.txt b/test/Golden/Parser/G13/P2.input.txt
deleted file mode 100644
--- a/test/Golden/Parser/G13/P2.input.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-[     boucle
--     enlever 1 à la case courante
-]     jusqu'à ce que la case soit à zéro
diff --git a/test/Golden/Parser/G2/P1.expected.txt b/test/Golden/Parser/G2/P1.expected.txt
deleted file mode 100644
--- a/test/Golden/Parser/G2/P1.expected.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-"abc"
diff --git a/test/Golden/Parser/G2/P1.input.txt b/test/Golden/Parser/G2/P1.input.txt
deleted file mode 100644
--- a/test/Golden/Parser/G2/P1.input.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-abc
diff --git a/test/Golden/Parser/G2/P2.expected.txt b/test/Golden/Parser/G2/P2.expected.txt
deleted file mode 100644
--- a/test/Golden/Parser/G2/P2.expected.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-ParsingErrorStandard {parsingErrorOffset = 0, parsingErrorException = ExceptionFailure, parsingErrorUnexpected = Just 'a', parsingErrorExpecting = fromList [FailureHorizon 3]}
diff --git a/test/Golden/Parser/G2/P2.input.txt b/test/Golden/Parser/G2/P2.input.txt
deleted file mode 100644
--- a/test/Golden/Parser/G2/P2.input.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-ab
diff --git a/test/Golden/Parser/G3/P1.expected.txt b/test/Golden/Parser/G3/P1.expected.txt
deleted file mode 100644
--- a/test/Golden/Parser/G3/P1.expected.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-"aaaaa"
diff --git a/test/Golden/Parser/G3/P1.input.txt b/test/Golden/Parser/G3/P1.input.txt
deleted file mode 100644
--- a/test/Golden/Parser/G3/P1.input.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-aaaaa
diff --git a/test/Golden/Parser/G4/P1.expected.txt b/test/Golden/Parser/G4/P1.expected.txt
deleted file mode 100644
--- a/test/Golden/Parser/G4/P1.expected.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-["abcd","abcd","abcd"]
diff --git a/test/Golden/Parser/G4/P1.input.txt b/test/Golden/Parser/G4/P1.input.txt
deleted file mode 100644
--- a/test/Golden/Parser/G4/P1.input.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-abcdabcdabcd
diff --git a/test/Golden/Parser/G4/P2.expected.txt b/test/Golden/Parser/G4/P2.expected.txt
deleted file mode 100644
--- a/test/Golden/Parser/G4/P2.expected.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-["abcd","abcd","abcd"]
diff --git a/test/Golden/Parser/G4/P2.input.txt b/test/Golden/Parser/G4/P2.input.txt
deleted file mode 100644
--- a/test/Golden/Parser/G4/P2.input.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-abcdabcdabcde
diff --git a/test/Golden/Parser/G4/P3.expected.txt b/test/Golden/Parser/G4/P3.expected.txt
deleted file mode 100644
--- a/test/Golden/Parser/G4/P3.expected.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-["abcd","abcd","abcd"]
diff --git a/test/Golden/Parser/G4/P3.input.txt b/test/Golden/Parser/G4/P3.input.txt
deleted file mode 100644
--- a/test/Golden/Parser/G4/P3.input.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-abcdabcdabcdefgh
diff --git a/test/Golden/Parser/G5/P1.expected.txt b/test/Golden/Parser/G5/P1.expected.txt
deleted file mode 100644
--- a/test/Golden/Parser/G5/P1.expected.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-ParsingErrorStandard {parsingErrorOffset = 0, parsingErrorException = ExceptionFailure, parsingErrorUnexpected = Just 'a', parsingErrorExpecting = fromList [FailureHorizon 4]}
diff --git a/test/Golden/Parser/G5/P1.input.txt b/test/Golden/Parser/G5/P1.input.txt
deleted file mode 100644
--- a/test/Golden/Parser/G5/P1.input.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-abc
diff --git a/test/Golden/Parser/G5/P2.expected.txt b/test/Golden/Parser/G5/P2.expected.txt
deleted file mode 100644
--- a/test/Golden/Parser/G5/P2.expected.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-ParsingErrorStandard {parsingErrorOffset = 4, parsingErrorException = ExceptionFailure, parsingErrorUnexpected = Just 'a', parsingErrorExpecting = fromList [FailureEnd,FailureHorizon 4]}
diff --git a/test/Golden/Parser/G5/P2.input.txt b/test/Golden/Parser/G5/P2.input.txt
deleted file mode 100644
--- a/test/Golden/Parser/G5/P2.input.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-abcdabc
diff --git a/test/Golden/Parser/G5/P3.expected.txt b/test/Golden/Parser/G5/P3.expected.txt
deleted file mode 100644
--- a/test/Golden/Parser/G5/P3.expected.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-ParsingErrorStandard {parsingErrorOffset = 4, parsingErrorException = ExceptionFailure, parsingErrorUnexpected = Just 'e', parsingErrorExpecting = fromList [FailureEnd,FailureToken 'a']}
diff --git a/test/Golden/Parser/G5/P3.input.txt b/test/Golden/Parser/G5/P3.input.txt
deleted file mode 100644
--- a/test/Golden/Parser/G5/P3.input.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-abcdefgh
diff --git a/test/Golden/Parser/G6/P1.expected.txt b/test/Golden/Parser/G6/P1.expected.txt
deleted file mode 100644
--- a/test/Golden/Parser/G6/P1.expected.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-ParsingErrorStandard {parsingErrorOffset = 1, parsingErrorException = ExceptionFailure, parsingErrorUnexpected = Just 'b', parsingErrorExpecting = fromList [FailureToken 'a']}
diff --git a/test/Golden/Parser/G6/P1.input.txt b/test/Golden/Parser/G6/P1.input.txt
deleted file mode 100644
--- a/test/Golden/Parser/G6/P1.input.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-ab
diff --git a/test/Golden/Parser/G7/P1.expected.txt b/test/Golden/Parser/G7/P1.expected.txt
deleted file mode 100644
--- a/test/Golden/Parser/G7/P1.expected.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-"ab"
diff --git a/test/Golden/Parser/G7/P1.input.txt b/test/Golden/Parser/G7/P1.input.txt
deleted file mode 100644
--- a/test/Golden/Parser/G7/P1.input.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-ab
diff --git a/test/Golden/Parser/G7/P2.expected.txt b/test/Golden/Parser/G7/P2.expected.txt
deleted file mode 100644
--- a/test/Golden/Parser/G7/P2.expected.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-"aa"
diff --git a/test/Golden/Parser/G7/P2.input.txt b/test/Golden/Parser/G7/P2.input.txt
deleted file mode 100644
--- a/test/Golden/Parser/G7/P2.input.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-aa
diff --git a/test/Golden/Parser/G8/P1.expected.txt b/test/Golden/Parser/G8/P1.expected.txt
deleted file mode 100644
--- a/test/Golden/Parser/G8/P1.expected.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-ParsingErrorStandard {parsingErrorOffset = 3, parsingErrorException = ExceptionFailure, parsingErrorUnexpected = Just 'a', parsingErrorExpecting = fromList [FailureEnd,FailureToken 'r']}
diff --git a/test/Golden/Parser/G8/P1.input.txt b/test/Golden/Parser/G8/P1.input.txt
deleted file mode 100644
--- a/test/Golden/Parser/G8/P1.input.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-rrra
diff --git a/test/Golden/Parser/G9/P1.expected.txt b/test/Golden/Parser/G9/P1.expected.txt
deleted file mode 100644
--- a/test/Golden/Parser/G9/P1.expected.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-()
diff --git a/test/Golden/Parser/G9/P1.input.txt b/test/Golden/Parser/G9/P1.input.txt
deleted file mode 100644
--- a/test/Golden/Parser/G9/P1.input.txt
+++ /dev/null
diff --git a/test/Golden/Parser/G9/P2.expected.txt b/test/Golden/Parser/G9/P2.expected.txt
deleted file mode 100644
--- a/test/Golden/Parser/G9/P2.expected.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-ParsingErrorStandard {parsingErrorOffset = 0, parsingErrorException = ExceptionFailure, parsingErrorUnexpected = Just 'a', parsingErrorExpecting = fromList [FailureEnd]}
diff --git a/test/Golden/Parser/G9/P2.input.txt b/test/Golden/Parser/G9/P2.input.txt
deleted file mode 100644
--- a/test/Golden/Parser/G9/P2.input.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-a
diff --git a/test/Golden/Parser/left-right.txt b/test/Golden/Parser/left-right.txt
deleted file mode 100644
--- a/test/Golden/Parser/left-right.txt
+++ /dev/null
@@ -1,1 +0,0 @@
-aa
diff --git a/test/Golden/Splice.hs b/test/Golden/Splice.hs
deleted file mode 100644
--- a/test/Golden/Splice.hs
+++ /dev/null
@@ -1,49 +0,0 @@
-{-# OPTIONS_GHC -Wno-missing-signatures #-}
-{-# OPTIONS_GHC -Wno-incomplete-uni-patterns #-}
-module Golden.Splice where
-
-import Data.Either (Either(..))
-import Data.Function (($))
-import Data.Functor ((<$>))
-import Data.Int (Int)
-import Data.List ((++))
-import Data.String (String, IsString(..))
-import Data.Text (Text)
-import Symantic.Parser (ParsingError, optimizeMachine, generateCode)
-import System.FilePath (dropExtensions, takeBaseName, (</>), (<.>))
-import System.IO (IO)
-import Test.Tasty
-import Test.Tasty.Golden (goldenVsStringDiff)
-import Text.Show (Show(..))
-import qualified Data.List as List
-import qualified Language.Haskell.TH as TH
-import qualified Language.Haskell.TH.HideName as TH
-import qualified System.Process as Process
-
-import Golden.Utils
-import qualified Grammar
-
-goldens :: TestTree
-goldens = testGroup "Splice"
-  [ let spliceFile = getGoldenDir $ "Splice/"</>"G"++show g<.>"expected"<.>"txt" in
-    goldenVsStringDiff (takeBaseName (dropExtensions spliceFile)) goldenDiff spliceFile $ do
-      tExp <- splice
-      fromString <$> Process.readProcess "ormolu"
-        [ "-o", "-XBangPatterns"
-        , "-o", "-XMagicHash"
-        , "-o", "-XTypeApplications"
-        , "-o", "-XUnboxedTuples"
-        ]
-        (show (TH.ppr (TH.hideName (TH.unType tExp))))
-  | (g, splice) <- List.zip [1::Int ..] splices
-  ]
-
-splices :: [IO (TH.TExp (Text -> Either (ParsingError Text) String))]
-splices = (<$> Grammar.grammars) $ \g -> TH.runQ $ do
-  TH.runIO resetTHNameCounter
-  mach <- TH.runIO $ optimizeMachine g
-  TH.examineCode $ generateCode mach
-
-[ s1,s2,s3,s4,s5,s6,s7,s8,s9
- ,s10,s11,s12,s13,s14,s15,s16
- ] = splices
diff --git a/test/Golden/Splice/G1.expected.txt b/test/Golden/Splice/G1.expected.txt
deleted file mode 100644
--- a/test/Golden/Splice/G1.expected.txt
+++ /dev/null
@@ -1,132 +0,0 @@
-\(input :: inp) ->
-  let !(#
-         init,
-         readMore,
-         readNext
-         #) =
-          let _ = "cursorOf"
-           in let next
-                    ( t@( Data.Text.Internal.Text
-                            arr
-                            off
-                            unconsumed
-                          )
-                      ) =
-                      let !( Data.Text.Unsafe.Iter
-                               c
-                               d
-                             ) = Data.Text.Unsafe.iter t 0
-                       in (#
-                            c,
-                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
-                          #)
-                  more
-                    ( Data.Text.Internal.Text
-                        _
-                        _
-                        unconsumed
-                      ) = unconsumed GHC.Classes.> 0
-               in (# input, more, next #)
-      finalRet = \_farInp _farExp v _inp -> Data.Either.Right v
-      finalRaise ::
-        forall b.
-        Symantic.Parser.Machine.Generate.Catcher
-          inp
-          b = \(!exn) _failInp (!farInp) (!farExp) ->
-          Data.Either.Left
-            Symantic.Parser.Machine.Generate.ParsingError
-              { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
-                Symantic.Parser.Machine.Generate.parsingErrorException = exn,
-                Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
-                  if readMore farInp
-                    then
-                      GHC.Maybe.Just
-                        ( let (#
-                                c,
-                                _
-                                #) = readNext farInp
-                           in c
-                        )
-                    else GHC.Maybe.Nothing,
-                Symantic.Parser.Machine.Generate.parsingErrorExpecting = farExp
-              }
-   in let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
-       in let
-           in let readFail = finalRaise
-               in if readMore init
-                    then
-                      let !(# c, cs #) = readNext init
-                       in if (GHC.Classes.==) 'a' c
-                            then
-                              let _ = "resume"
-                               in finalRet
-                                    init
-                                    Data.Set.Internal.empty
-                                    ( let _ = "resume.genCode"
-                                       in GHC.Show.show 'a'
-                                    )
-                                    cs
-                            else
-                              let _ = "checkToken.else"
-                               in let failExp =
-                                        Data.Set.Internal.Bin
-                                          1
-                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                              ( case inputToken of
-                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
-                                              )
-                                          )
-                                          Data.Set.Internal.Tip
-                                          Data.Set.Internal.Tip
-                                   in let (#
-                                            farInp,
-                                            farExp
-                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init init of
-                                              GHC.Types.LT ->
-                                                (#
-                                                  init,
-                                                  failExp
-                                                #)
-                                              GHC.Types.EQ ->
-                                                (#
-                                                  init,
-                                                  failExp GHC.Base.<> Data.Set.Internal.empty
-                                                #)
-                                              GHC.Types.GT ->
-                                                (#
-                                                  init,
-                                                  Data.Set.Internal.empty
-                                                #)
-                                       in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure init farInp farExp
-                    else
-                      let _ = "checkHorizon.else"
-                       in let failExp =
-                                Data.Set.Internal.Bin
-                                  1
-                                  ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                      ( case inputToken of
-                                          (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
-                                      )
-                                  )
-                                  Data.Set.Internal.Tip
-                                  Data.Set.Internal.Tip
-                           in let (#
-                                    farInp,
-                                    farExp
-                                    #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init init of
-                                      GHC.Types.LT ->
-                                        (#
-                                          init,
-                                          failExp
-                                        #)
-                                      GHC.Types.EQ ->
-                                        (#
-                                          init,
-                                          failExp GHC.Base.<> Data.Set.Internal.empty
-                                        #)
-                                      GHC.Types.GT ->
-                                        (#
-                                          init,
-                                          Data.Set.Internal.empty
-                                        #)
-                               in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure init farInp farExp
diff --git a/test/Golden/Splice/G10.expected.txt b/test/Golden/Splice/G10.expected.txt
deleted file mode 100644
--- a/test/Golden/Splice/G10.expected.txt
+++ /dev/null
@@ -1,243 +0,0 @@
-\(input :: inp) ->
-  let !(#
-         init,
-         readMore,
-         readNext
-         #) =
-          let _ = "cursorOf"
-           in let next
-                    ( t@( Data.Text.Internal.Text
-                            arr
-                            off
-                            unconsumed
-                          )
-                      ) =
-                      let !( Data.Text.Unsafe.Iter
-                               c
-                               d
-                             ) = Data.Text.Unsafe.iter t 0
-                       in (#
-                            c,
-                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
-                          #)
-                  more
-                    ( Data.Text.Internal.Text
-                        _
-                        _
-                        unconsumed
-                      ) = unconsumed GHC.Classes.> 0
-               in (# input, more, next #)
-      finalRet = \_farInp _farExp v _inp -> Data.Either.Right v
-      finalRaise ::
-        forall b.
-        Symantic.Parser.Machine.Generate.Catcher
-          inp
-          b = \(!exn) _failInp (!farInp) (!farExp) ->
-          Data.Either.Left
-            Symantic.Parser.Machine.Generate.ParsingError
-              { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
-                Symantic.Parser.Machine.Generate.parsingErrorException = exn,
-                Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
-                  if readMore farInp
-                    then
-                      GHC.Maybe.Just
-                        ( let (#
-                                c,
-                                _
-                                #) = readNext farInp
-                           in c
-                        )
-                    else GHC.Maybe.Nothing,
-                Symantic.Parser.Machine.Generate.parsingErrorExpecting = farExp
-              }
-   in let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
-       in let
-           in let join = \farInp farExp v (!inp) ->
-                    let _ = "resume"
-                     in finalRet
-                          farInp
-                          farExp
-                          ( let _ = "resume.genCode"
-                             in GHC.Show.show v
-                          )
-                          inp
-               in let _ = "catch ExceptionFailure"
-                   in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                            let _ = "catch.ko ExceptionFailure"
-                             in if ( \( Data.Text.Internal.Text
-                                          _
-                                          i
-                                          _
-                                        )
-                                      ( Data.Text.Internal.Text
-                                          _
-                                          j
-                                          _
-                                        ) -> i GHC.Classes.== j
-                                   )
-                                  init
-                                  failInp
-                                  then
-                                    let _ = "choicesBranch.then"
-                                     in let readFail = finalRaise
-                                         in if readMore failInp
-                                              then
-                                                let !(#
-                                                       c,
-                                                       cs
-                                                       #) = readNext failInp
-                                                 in if (GHC.Classes.==) 'b' c
-                                                      then
-                                                        let _ = "resume"
-                                                         in join
-                                                              farInp
-                                                              farExp
-                                                              ( let _ = "resume.genCode"
-                                                                 in 'b'
-                                                              )
-                                                              cs
-                                                      else
-                                                        let _ = "checkToken.else"
-                                                         in let failExp =
-                                                                  Data.Set.Internal.Bin
-                                                                    1
-                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                        ( case inputToken of
-                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'b'
-                                                                        )
-                                                                    )
-                                                                    Data.Set.Internal.Tip
-                                                                    Data.Set.Internal.Tip
-                                                             in let (#
-                                                                      farInp,
-                                                                      farExp
-                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp failInp of
-                                                                        GHC.Types.LT ->
-                                                                          (#
-                                                                            failInp,
-                                                                            failExp
-                                                                          #)
-                                                                        GHC.Types.EQ ->
-                                                                          (#
-                                                                            farInp,
-                                                                            failExp GHC.Base.<> farExp
-                                                                          #)
-                                                                        GHC.Types.GT ->
-                                                                          (#
-                                                                            farInp,
-                                                                            farExp
-                                                                          #)
-                                                                 in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                              else
-                                                let _ = "checkHorizon.else"
-                                                 in let failExp =
-                                                          Data.Set.Internal.Bin
-                                                            1
-                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                ( case inputToken of
-                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
-                                                                )
-                                                            )
-                                                            Data.Set.Internal.Tip
-                                                            Data.Set.Internal.Tip
-                                                     in let (#
-                                                              farInp,
-                                                              farExp
-                                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp failInp of
-                                                                GHC.Types.LT ->
-                                                                  (#
-                                                                    failInp,
-                                                                    failExp
-                                                                  #)
-                                                                GHC.Types.EQ ->
-                                                                  (#
-                                                                    farInp,
-                                                                    failExp GHC.Base.<> farExp
-                                                                  #)
-                                                                GHC.Types.GT ->
-                                                                  (#
-                                                                    farInp,
-                                                                    farExp
-                                                                  #)
-                                                         in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                  else
-                                    let _ = "choicesBranch.else"
-                                     in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                       in let readFail = catchHandler
-                           in if readMore init
-                                then
-                                  let !(# c, cs #) = readNext init
-                                   in if (GHC.Classes.==) 'a' c
-                                        then
-                                          let _ = "resume"
-                                           in join
-                                                init
-                                                Data.Set.Internal.empty
-                                                ( let _ = "resume.genCode"
-                                                   in 'a'
-                                                )
-                                                cs
-                                        else
-                                          let _ = "checkToken.else"
-                                           in let failExp =
-                                                    Data.Set.Internal.Bin
-                                                      1
-                                                      ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                          ( case inputToken of
-                                                              (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
-                                                          )
-                                                      )
-                                                      Data.Set.Internal.Tip
-                                                      Data.Set.Internal.Tip
-                                               in let (#
-                                                        farInp,
-                                                        farExp
-                                                        #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init init of
-                                                          GHC.Types.LT ->
-                                                            (#
-                                                              init,
-                                                              failExp
-                                                            #)
-                                                          GHC.Types.EQ ->
-                                                            (#
-                                                              init,
-                                                              failExp GHC.Base.<> Data.Set.Internal.empty
-                                                            #)
-                                                          GHC.Types.GT ->
-                                                            (#
-                                                              init,
-                                                              Data.Set.Internal.empty
-                                                            #)
-                                                   in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure init farInp farExp
-                                else
-                                  let _ = "checkHorizon.else"
-                                   in let failExp =
-                                            Data.Set.Internal.Bin
-                                              1
-                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                  ( case inputToken of
-                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
-                                                  )
-                                              )
-                                              Data.Set.Internal.Tip
-                                              Data.Set.Internal.Tip
-                                       in let (#
-                                                farInp,
-                                                farExp
-                                                #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init init of
-                                                  GHC.Types.LT ->
-                                                    (#
-                                                      init,
-                                                      failExp
-                                                    #)
-                                                  GHC.Types.EQ ->
-                                                    (#
-                                                      init,
-                                                      failExp GHC.Base.<> Data.Set.Internal.empty
-                                                    #)
-                                                  GHC.Types.GT ->
-                                                    (#
-                                                      init,
-                                                      Data.Set.Internal.empty
-                                                    #)
-                                           in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure init farInp farExp
diff --git a/test/Golden/Splice/G11.expected.txt b/test/Golden/Splice/G11.expected.txt
deleted file mode 100644
--- a/test/Golden/Splice/G11.expected.txt
+++ /dev/null
@@ -1,257 +0,0 @@
-\(input :: inp) ->
-  let !(#
-         init,
-         readMore,
-         readNext
-         #) =
-          let _ = "cursorOf"
-           in let next
-                    ( t@( Data.Text.Internal.Text
-                            arr
-                            off
-                            unconsumed
-                          )
-                      ) =
-                      let !( Data.Text.Unsafe.Iter
-                               c
-                               d
-                             ) = Data.Text.Unsafe.iter t 0
-                       in (#
-                            c,
-                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
-                          #)
-                  more
-                    ( Data.Text.Internal.Text
-                        _
-                        _
-                        unconsumed
-                      ) = unconsumed GHC.Classes.> 0
-               in (# input, more, next #)
-      finalRet = \_farInp _farExp v _inp -> Data.Either.Right v
-      finalRaise ::
-        forall b.
-        Symantic.Parser.Machine.Generate.Catcher
-          inp
-          b = \(!exn) _failInp (!farInp) (!farExp) ->
-          Data.Either.Left
-            Symantic.Parser.Machine.Generate.ParsingError
-              { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
-                Symantic.Parser.Machine.Generate.parsingErrorException = exn,
-                Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
-                  if readMore farInp
-                    then
-                      GHC.Maybe.Just
-                        ( let (#
-                                c,
-                                _
-                                #) = readNext farInp
-                           in c
-                        )
-                    else GHC.Maybe.Nothing,
-                Symantic.Parser.Machine.Generate.parsingErrorExpecting = farExp
-              }
-   in let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
-       in let name = \(!ok) (!inp) (!koByLabel) ->
-                let _ = "catch ExceptionFailure"
-                 in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                          let _ = "catch.ko ExceptionFailure"
-                           in if ( \( Data.Text.Internal.Text
-                                        _
-                                        i
-                                        _
-                                      )
-                                    ( Data.Text.Internal.Text
-                                        _
-                                        j
-                                        _
-                                      ) -> i GHC.Classes.== j
-                                 )
-                                inp
-                                failInp
-                                then
-                                  let _ = "choicesBranch.then"
-                                   in let _ = "resume"
-                                       in ok
-                                            farInp
-                                            farExp
-                                            ( let _ = "resume.genCode"
-                                               in \x -> x
-                                            )
-                                            failInp
-                                else
-                                  let _ = "choicesBranch.else"
-                                   in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                     in let readFail = catchHandler
-                         in if readMore inp
-                              then
-                                let !(#
-                                       c,
-                                       cs
-                                       #) = readNext inp
-                                 in if (GHC.Classes.==) 'a' c
-                                      then
-                                        name
-                                          ( let _ = "suspend"
-                                             in \farInp farExp v (!inp) ->
-                                                  let _ = "resume"
-                                                   in ok
-                                                        farInp
-                                                        farExp
-                                                        ( let _ = "resume.genCode"
-                                                           in \x -> (GHC.Types.:) 'a' (v x)
-                                                        )
-                                                        inp
-                                          )
-                                          cs
-                                          (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                      else
-                                        let _ = "checkToken.else"
-                                         in let failExp =
-                                                  Data.Set.Internal.Bin
-                                                    1
-                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                        ( case inputToken of
-                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
-                                                        )
-                                                    )
-                                                    Data.Set.Internal.Tip
-                                                    Data.Set.Internal.Tip
-                                             in let (#
-                                                      farInp,
-                                                      farExp
-                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                        GHC.Types.LT ->
-                                                          (#
-                                                            inp,
-                                                            failExp
-                                                          #)
-                                                        GHC.Types.EQ ->
-                                                          (#
-                                                            init,
-                                                            failExp GHC.Base.<> Data.Set.Internal.empty
-                                                          #)
-                                                        GHC.Types.GT ->
-                                                          (#
-                                                            init,
-                                                            Data.Set.Internal.empty
-                                                          #)
-                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                              else
-                                let _ = "checkHorizon.else"
-                                 in let failExp =
-                                          Data.Set.Internal.Bin
-                                            1
-                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                ( case inputToken of
-                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
-                                                )
-                                            )
-                                            Data.Set.Internal.Tip
-                                            Data.Set.Internal.Tip
-                                     in let (#
-                                              farInp,
-                                              farExp
-                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                GHC.Types.LT ->
-                                                  (#
-                                                    inp,
-                                                    failExp
-                                                  #)
-                                                GHC.Types.EQ ->
-                                                  (#
-                                                    init,
-                                                    failExp GHC.Base.<> Data.Set.Internal.empty
-                                                  #)
-                                                GHC.Types.GT ->
-                                                  (#
-                                                    init,
-                                                    Data.Set.Internal.empty
-                                                  #)
-                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-           in name
-                ( let _ = "suspend"
-                   in \farInp farExp v (!inp) ->
-                        let readFail = finalRaise
-                         in if readMore inp
-                              then
-                                let !(#
-                                       c,
-                                       cs
-                                       #) = readNext inp
-                                 in if (GHC.Classes.==) 'b' c
-                                      then
-                                        let _ = "resume"
-                                         in finalRet
-                                              farInp
-                                              farExp
-                                              ( let _ = "resume.genCode"
-                                                 in GHC.Show.show (v GHC.Types . [])
-                                              )
-                                              cs
-                                      else
-                                        let _ = "checkToken.else"
-                                         in let failExp =
-                                                  Data.Set.Internal.Bin
-                                                    1
-                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                        ( case inputToken of
-                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'b'
-                                                        )
-                                                    )
-                                                    Data.Set.Internal.Tip
-                                                    Data.Set.Internal.Tip
-                                             in let (#
-                                                      farInp,
-                                                      farExp
-                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
-                                                        GHC.Types.LT ->
-                                                          (#
-                                                            inp,
-                                                            failExp
-                                                          #)
-                                                        GHC.Types.EQ ->
-                                                          (#
-                                                            farInp,
-                                                            failExp GHC.Base.<> farExp
-                                                          #)
-                                                        GHC.Types.GT ->
-                                                          (#
-                                                            farInp,
-                                                            farExp
-                                                          #)
-                                                 in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                              else
-                                let _ = "checkHorizon.else"
-                                 in let failExp =
-                                          Data.Set.Internal.Bin
-                                            1
-                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                ( case inputToken of
-                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
-                                                )
-                                            )
-                                            Data.Set.Internal.Tip
-                                            Data.Set.Internal.Tip
-                                     in let (#
-                                              farInp,
-                                              farExp
-                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
-                                                GHC.Types.LT ->
-                                                  (#
-                                                    inp,
-                                                    failExp
-                                                  #)
-                                                GHC.Types.EQ ->
-                                                  (#
-                                                    farInp,
-                                                    failExp GHC.Base.<> farExp
-                                                  #)
-                                                GHC.Types.GT ->
-                                                  (#
-                                                    farInp,
-                                                    farExp
-                                                  #)
-                                         in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                )
-                init
-                Data.Map.Internal.Tip
diff --git a/test/Golden/Splice/G12.expected.txt b/test/Golden/Splice/G12.expected.txt
deleted file mode 100644
--- a/test/Golden/Splice/G12.expected.txt
+++ /dev/null
@@ -1,305 +0,0 @@
-\(input :: inp) ->
-  let !(#
-         init,
-         readMore,
-         readNext
-         #) =
-          let _ = "cursorOf"
-           in let next
-                    ( t@( Data.Text.Internal.Text
-                            arr
-                            off
-                            unconsumed
-                          )
-                      ) =
-                      let !( Data.Text.Unsafe.Iter
-                               c
-                               d
-                             ) = Data.Text.Unsafe.iter t 0
-                       in (#
-                            c,
-                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
-                          #)
-                  more
-                    ( Data.Text.Internal.Text
-                        _
-                        _
-                        unconsumed
-                      ) = unconsumed GHC.Classes.> 0
-               in (# input, more, next #)
-      finalRet = \_farInp _farExp v _inp -> Data.Either.Right v
-      finalRaise ::
-        forall b.
-        Symantic.Parser.Machine.Generate.Catcher
-          inp
-          b = \(!exn) _failInp (!farInp) (!farExp) ->
-          Data.Either.Left
-            Symantic.Parser.Machine.Generate.ParsingError
-              { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
-                Symantic.Parser.Machine.Generate.parsingErrorException = exn,
-                Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
-                  if readMore farInp
-                    then
-                      GHC.Maybe.Just
-                        ( let (#
-                                c,
-                                _
-                                #) = readNext farInp
-                           in c
-                        )
-                    else GHC.Maybe.Nothing,
-                Symantic.Parser.Machine.Generate.parsingErrorExpecting = farExp
-              }
-   in let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
-       in let name = \(!ok) (!inp) (!koByLabel) ->
-                let _ = "catch ExceptionFailure"
-                 in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                          let _ = "catch.ko ExceptionFailure"
-                           in if ( \( Data.Text.Internal.Text
-                                        _
-                                        i
-                                        _
-                                      )
-                                    ( Data.Text.Internal.Text
-                                        _
-                                        j
-                                        _
-                                      ) -> i GHC.Classes.== j
-                                 )
-                                inp
-                                failInp
-                                then
-                                  let _ = "choicesBranch.then"
-                                   in let _ = "resume"
-                                       in ok
-                                            farInp
-                                            farExp
-                                            ( let _ = "resume.genCode"
-                                               in \x -> x
-                                            )
-                                            failInp
-                                else
-                                  let _ = "choicesBranch.else"
-                                   in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                     in let readFail = catchHandler
-                         in if readMore inp
-                              then
-                                let !(#
-                                       c,
-                                       cs
-                                       #) = readNext inp
-                                 in if (\t -> ('a' GHC.Classes.== t) GHC.Classes.|| (('b' GHC.Classes.== t) GHC.Classes.|| (('c' GHC.Classes.== t) GHC.Classes.|| (('d' GHC.Classes.== t) GHC.Classes.|| GHC.Types.False)))) c
-                                      then
-                                        name
-                                          ( let _ = "suspend"
-                                             in \farInp farExp v (!inp) ->
-                                                  let _ = "resume"
-                                                   in ok
-                                                        farInp
-                                                        farExp
-                                                        ( let _ = "resume.genCode"
-                                                           in \x -> (GHC.Types.:) c (v x)
-                                                        )
-                                                        inp
-                                          )
-                                          cs
-                                          (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                      else
-                                        let _ = "checkToken.else"
-                                         in let failExp =
-                                                  Data.Set.Internal.Bin
-                                                    4
-                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                        ( case inputToken of
-                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'b'
-                                                        )
-                                                    )
-                                                    ( Data.Set.Internal.Bin
-                                                        1
-                                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                            ( case inputToken of
-                                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
-                                                            )
-                                                        )
-                                                        Data.Set.Internal.Tip
-                                                        Data.Set.Internal.Tip
-                                                    )
-                                                    ( Data.Set.Internal.Bin
-                                                        2
-                                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                            ( case inputToken of
-                                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'c'
-                                                            )
-                                                        )
-                                                        Data.Set.Internal.Tip
-                                                        ( Data.Set.Internal.Bin
-                                                            1
-                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                ( case inputToken of
-                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'd'
-                                                                )
-                                                            )
-                                                            Data.Set.Internal.Tip
-                                                            Data.Set.Internal.Tip
-                                                        )
-                                                    )
-                                             in let (#
-                                                      farInp,
-                                                      farExp
-                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                        GHC.Types.LT ->
-                                                          (#
-                                                            inp,
-                                                            failExp
-                                                          #)
-                                                        GHC.Types.EQ ->
-                                                          (#
-                                                            init,
-                                                            failExp GHC.Base.<> Data.Set.Internal.empty
-                                                          #)
-                                                        GHC.Types.GT ->
-                                                          (#
-                                                            init,
-                                                            Data.Set.Internal.empty
-                                                          #)
-                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                              else
-                                let _ = "checkHorizon.else"
-                                 in let failExp =
-                                          Data.Set.Internal.Bin
-                                            1
-                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                ( case inputToken of
-                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
-                                                )
-                                            )
-                                            Data.Set.Internal.Tip
-                                            Data.Set.Internal.Tip
-                                     in let (#
-                                              farInp,
-                                              farExp
-                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                GHC.Types.LT ->
-                                                  (#
-                                                    inp,
-                                                    failExp
-                                                  #)
-                                                GHC.Types.EQ ->
-                                                  (#
-                                                    init,
-                                                    failExp GHC.Base.<> Data.Set.Internal.empty
-                                                  #)
-                                                GHC.Types.GT ->
-                                                  (#
-                                                    init,
-                                                    Data.Set.Internal.empty
-                                                  #)
-                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-           in name
-                ( let _ = "suspend"
-                   in \farInp farExp v (!inp) ->
-                        let join = \farInp farExp v (!inp) ->
-                              let _ = "resume"
-                               in finalRet
-                                    farInp
-                                    farExp
-                                    ( let _ = "resume.genCode"
-                                       in GHC.Show.show (v GHC.Types . [])
-                                    )
-                                    inp
-                         in let _ = "catch ExceptionFailure"
-                             in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                                      let _ = "catch.ko ExceptionFailure"
-                                       in if ( \( Data.Text.Internal.Text
-                                                    _
-                                                    i
-                                                    _
-                                                  )
-                                                ( Data.Text.Internal.Text
-                                                    _
-                                                    j
-                                                    _
-                                                  ) -> i GHC.Classes.== j
-                                             )
-                                            inp
-                                            failInp
-                                            then
-                                              let _ = "choicesBranch.then"
-                                               in let failExp = Data.Set.Internal.Bin 1 (Symantic.Parser.Grammar.Combinators.SomeFailure Symantic.Parser.Grammar.Combinators.FailureEnd) Data.Set.Internal.Tip Data.Set.Internal.Tip
-                                                   in let (#
-                                                            farInp,
-                                                            farExp
-                                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp failInp of
-                                                              GHC.Types.LT ->
-                                                                (#
-                                                                  failInp,
-                                                                  failExp
-                                                                #)
-                                                              GHC.Types.EQ ->
-                                                                (#
-                                                                  farInp,
-                                                                  failExp GHC.Base.<> farExp
-                                                                #)
-                                                              GHC.Types.GT ->
-                                                                (#
-                                                                  farInp,
-                                                                  farExp
-                                                                #)
-                                                       in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                            else
-                                              let _ = "choicesBranch.else"
-                                               in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                 in let _ = "catch ExceptionFailure"
-                                     in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                                              let _ = "catch.ko ExceptionFailure"
-                                               in let _ = "resume"
-                                                   in join
-                                                        farInp
-                                                        farExp
-                                                        ( let _ = "resume.genCode"
-                                                           in GHC.Tuple . ()
-                                                        )
-                                                        inp
-                                         in let readFail = catchHandler
-                                             in if readMore inp
-                                                  then
-                                                    let !(#
-                                                           c,
-                                                           cs
-                                                           #) = readNext inp
-                                                     in catchHandler Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                                                  else
-                                                    let _ = "checkHorizon.else"
-                                                     in let failExp =
-                                                              Data.Set.Internal.Bin
-                                                                1
-                                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                    ( case inputToken of
-                                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
-                                                                    )
-                                                                )
-                                                                Data.Set.Internal.Tip
-                                                                Data.Set.Internal.Tip
-                                                         in let (#
-                                                                  farInp,
-                                                                  farExp
-                                                                  #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
-                                                                    GHC.Types.LT ->
-                                                                      (#
-                                                                        inp,
-                                                                        failExp
-                                                                      #)
-                                                                    GHC.Types.EQ ->
-                                                                      (#
-                                                                        farInp,
-                                                                        failExp GHC.Base.<> farExp
-                                                                      #)
-                                                                    GHC.Types.GT ->
-                                                                      (#
-                                                                        farInp,
-                                                                        farExp
-                                                                      #)
-                                                             in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                )
-                init
-                Data.Map.Internal.Tip
diff --git a/test/Golden/Splice/G13.expected.txt b/test/Golden/Splice/G13.expected.txt
deleted file mode 100644
--- a/test/Golden/Splice/G13.expected.txt
+++ /dev/null
@@ -1,722 +0,0 @@
-\(input :: inp) ->
-  let !(#
-         init,
-         readMore,
-         readNext
-         #) =
-          let _ = "cursorOf"
-           in let next
-                    ( t@( Data.Text.Internal.Text
-                            arr
-                            off
-                            unconsumed
-                          )
-                      ) =
-                      let !( Data.Text.Unsafe.Iter
-                               c
-                               d
-                             ) = Data.Text.Unsafe.iter t 0
-                       in (#
-                            c,
-                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
-                          #)
-                  more
-                    ( Data.Text.Internal.Text
-                        _
-                        _
-                        unconsumed
-                      ) = unconsumed GHC.Classes.> 0
-               in (# input, more, next #)
-      finalRet = \_farInp _farExp v _inp -> Data.Either.Right v
-      finalRaise ::
-        forall b.
-        Symantic.Parser.Machine.Generate.Catcher
-          inp
-          b = \(!exn) _failInp (!farInp) (!farExp) ->
-          Data.Either.Left
-            Symantic.Parser.Machine.Generate.ParsingError
-              { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
-                Symantic.Parser.Machine.Generate.parsingErrorException = exn,
-                Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
-                  if readMore farInp
-                    then
-                      GHC.Maybe.Just
-                        ( let (#
-                                c,
-                                _
-                                #) = readNext farInp
-                           in c
-                        )
-                    else GHC.Maybe.Nothing,
-                Symantic.Parser.Machine.Generate.parsingErrorExpecting = farExp
-              }
-   in let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
-       in let name = \(!ok) (!inp) (!koByLabel) ->
-                name
-                  ( let _ = "suspend"
-                     in \farInp farExp v (!inp) ->
-                          let _ = "resume"
-                           in ok
-                                farInp
-                                farExp
-                                ( let _ = "resume.genCode"
-                                   in GHC.Tuple . ()
-                                )
-                                inp
-                  )
-                  inp
-                  (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel) Data.Map.Internal.Tip Data.Map.Internal.Tip)
-              name = \(!ok) (!inp) (!koByLabel) ->
-                name
-                  ( let _ = "suspend"
-                     in \farInp farExp v (!inp) ->
-                          let _ = "resume"
-                           in ok
-                                farInp
-                                farExp
-                                ( let _ = "resume.genCode"
-                                   in v GHC.Types . []
-                                )
-                                inp
-                  )
-                  inp
-                  (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel) Data.Map.Internal.Tip Data.Map.Internal.Tip)
-              name = \(!ok) (!inp) (!koByLabel) ->
-                let _ = "catch ExceptionFailure"
-                 in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                          let _ = "catch.ko ExceptionFailure"
-                           in if ( \( Data.Text.Internal.Text
-                                        _
-                                        i
-                                        _
-                                      )
-                                    ( Data.Text.Internal.Text
-                                        _
-                                        j
-                                        _
-                                      ) -> i GHC.Classes.== j
-                                 )
-                                inp
-                                failInp
-                                then
-                                  let _ = "choicesBranch.then"
-                                   in let _ = "resume"
-                                       in ok
-                                            farInp
-                                            farExp
-                                            ( let _ = "resume.genCode"
-                                               in \x -> x
-                                            )
-                                            failInp
-                                else
-                                  let _ = "choicesBranch.else"
-                                   in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                     in let join = \farInp farExp v (!inp) ->
-                              name
-                                ( let _ = "suspend"
-                                   in \farInp farExp v (!inp) ->
-                                        name
-                                          ( let _ = "suspend"
-                                             in \farInp farExp v (!inp) ->
-                                                  let _ = "resume"
-                                                   in ok
-                                                        farInp
-                                                        farExp
-                                                        ( let _ = "resume.genCode"
-                                                           in \x -> (GHC.Types.:) v (v x)
-                                                        )
-                                                        inp
-                                          )
-                                          inp
-                                          (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                )
-                                inp
-                                (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                         in let readFail = catchHandler
-                             in if readMore inp
-                                  then
-                                    let !(#
-                                           c,
-                                           cs
-                                           #) = readNext inp
-                                     in if (GHC.Classes.==) '<' c
-                                          then
-                                            let _ = "choicesBranch.then"
-                                             in let readFail = readFail
-                                                 in if readMore inp
-                                                      then
-                                                        let !(#
-                                                               c,
-                                                               cs
-                                                               #) = readNext inp
-                                                         in let _ = "resume"
-                                                             in join
-                                                                  init
-                                                                  Data.Set.Internal.empty
-                                                                  ( let _ = "resume.genCode"
-                                                                     in Parsers.Brainfuck.Types.Backward
-                                                                  )
-                                                                  cs
-                                                      else
-                                                        let _ = "checkHorizon.else"
-                                                         in let failExp =
-                                                                  Data.Set.Internal.Bin
-                                                                    1
-                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                        ( case inputToken of
-                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
-                                                                        )
-                                                                    )
-                                                                    Data.Set.Internal.Tip
-                                                                    Data.Set.Internal.Tip
-                                                             in let (#
-                                                                      farInp,
-                                                                      farExp
-                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                                        GHC.Types.LT ->
-                                                                          (#
-                                                                            inp,
-                                                                            failExp
-                                                                          #)
-                                                                        GHC.Types.EQ ->
-                                                                          (#
-                                                                            init,
-                                                                            failExp GHC.Base.<> Data.Set.Internal.empty
-                                                                          #)
-                                                                        GHC.Types.GT ->
-                                                                          (#
-                                                                            init,
-                                                                            Data.Set.Internal.empty
-                                                                          #)
-                                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                                          else
-                                            let _ = "choicesBranch.else"
-                                             in if (GHC.Classes.==) '>' c
-                                                  then
-                                                    let _ = "choicesBranch.then"
-                                                     in let readFail = readFail
-                                                         in if readMore inp
-                                                              then
-                                                                let !(#
-                                                                       c,
-                                                                       cs
-                                                                       #) = readNext inp
-                                                                 in let _ = "resume"
-                                                                     in join
-                                                                          init
-                                                                          Data.Set.Internal.empty
-                                                                          ( let _ = "resume.genCode"
-                                                                             in Parsers.Brainfuck.Types.Forward
-                                                                          )
-                                                                          cs
-                                                              else
-                                                                let _ = "checkHorizon.else"
-                                                                 in let failExp =
-                                                                          Data.Set.Internal.Bin
-                                                                            1
-                                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                ( case inputToken of
-                                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
-                                                                                )
-                                                                            )
-                                                                            Data.Set.Internal.Tip
-                                                                            Data.Set.Internal.Tip
-                                                                     in let (#
-                                                                              farInp,
-                                                                              farExp
-                                                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                                                GHC.Types.LT ->
-                                                                                  (#
-                                                                                    inp,
-                                                                                    failExp
-                                                                                  #)
-                                                                                GHC.Types.EQ ->
-                                                                                  (#
-                                                                                    init,
-                                                                                    failExp GHC.Base.<> Data.Set.Internal.empty
-                                                                                  #)
-                                                                                GHC.Types.GT ->
-                                                                                  (#
-                                                                                    init,
-                                                                                    Data.Set.Internal.empty
-                                                                                  #)
-                                                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                                                  else
-                                                    let _ = "choicesBranch.else"
-                                                     in if (GHC.Classes.==) '+' c
-                                                          then
-                                                            let _ = "choicesBranch.then"
-                                                             in let readFail = readFail
-                                                                 in if readMore inp
-                                                                      then
-                                                                        let !(#
-                                                                               c,
-                                                                               cs
-                                                                               #) = readNext inp
-                                                                         in let _ = "resume"
-                                                                             in join
-                                                                                  init
-                                                                                  Data.Set.Internal.empty
-                                                                                  ( let _ = "resume.genCode"
-                                                                                     in Parsers.Brainfuck.Types.Increment
-                                                                                  )
-                                                                                  cs
-                                                                      else
-                                                                        let _ = "checkHorizon.else"
-                                                                         in let failExp =
-                                                                                  Data.Set.Internal.Bin
-                                                                                    1
-                                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                        ( case inputToken of
-                                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
-                                                                                        )
-                                                                                    )
-                                                                                    Data.Set.Internal.Tip
-                                                                                    Data.Set.Internal.Tip
-                                                                             in let (#
-                                                                                      farInp,
-                                                                                      farExp
-                                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                                                        GHC.Types.LT ->
-                                                                                          (#
-                                                                                            inp,
-                                                                                            failExp
-                                                                                          #)
-                                                                                        GHC.Types.EQ ->
-                                                                                          (#
-                                                                                            init,
-                                                                                            failExp GHC.Base.<> Data.Set.Internal.empty
-                                                                                          #)
-                                                                                        GHC.Types.GT ->
-                                                                                          (#
-                                                                                            init,
-                                                                                            Data.Set.Internal.empty
-                                                                                          #)
-                                                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                                                          else
-                                                            let _ = "choicesBranch.else"
-                                                             in if (GHC.Classes.==) '-' c
-                                                                  then
-                                                                    let _ = "choicesBranch.then"
-                                                                     in let readFail = readFail
-                                                                         in if readMore inp
-                                                                              then
-                                                                                let !(#
-                                                                                       c,
-                                                                                       cs
-                                                                                       #) = readNext inp
-                                                                                 in let _ = "resume"
-                                                                                     in join
-                                                                                          init
-                                                                                          Data.Set.Internal.empty
-                                                                                          ( let _ = "resume.genCode"
-                                                                                             in Parsers.Brainfuck.Types.Decrement
-                                                                                          )
-                                                                                          cs
-                                                                              else
-                                                                                let _ = "checkHorizon.else"
-                                                                                 in let failExp =
-                                                                                          Data.Set.Internal.Bin
-                                                                                            1
-                                                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                ( case inputToken of
-                                                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
-                                                                                                )
-                                                                                            )
-                                                                                            Data.Set.Internal.Tip
-                                                                                            Data.Set.Internal.Tip
-                                                                                     in let (#
-                                                                                              farInp,
-                                                                                              farExp
-                                                                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                                                                GHC.Types.LT ->
-                                                                                                  (#
-                                                                                                    inp,
-                                                                                                    failExp
-                                                                                                  #)
-                                                                                                GHC.Types.EQ ->
-                                                                                                  (#
-                                                                                                    init,
-                                                                                                    failExp GHC.Base.<> Data.Set.Internal.empty
-                                                                                                  #)
-                                                                                                GHC.Types.GT ->
-                                                                                                  (#
-                                                                                                    init,
-                                                                                                    Data.Set.Internal.empty
-                                                                                                  #)
-                                                                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                                                                  else
-                                                                    let _ = "choicesBranch.else"
-                                                                     in if (GHC.Classes.==) ',' c
-                                                                          then
-                                                                            let _ = "choicesBranch.then"
-                                                                             in let readFail = readFail
-                                                                                 in if readMore inp
-                                                                                      then
-                                                                                        let !(#
-                                                                                               c,
-                                                                                               cs
-                                                                                               #) = readNext inp
-                                                                                         in let _ = "resume"
-                                                                                             in join
-                                                                                                  init
-                                                                                                  Data.Set.Internal.empty
-                                                                                                  ( let _ = "resume.genCode"
-                                                                                                     in Parsers.Brainfuck.Types.Input
-                                                                                                  )
-                                                                                                  cs
-                                                                                      else
-                                                                                        let _ = "checkHorizon.else"
-                                                                                         in let failExp =
-                                                                                                  Data.Set.Internal.Bin
-                                                                                                    1
-                                                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                        ( case inputToken of
-                                                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
-                                                                                                        )
-                                                                                                    )
-                                                                                                    Data.Set.Internal.Tip
-                                                                                                    Data.Set.Internal.Tip
-                                                                                             in let (#
-                                                                                                      farInp,
-                                                                                                      farExp
-                                                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                                                                        GHC.Types.LT ->
-                                                                                                          (#
-                                                                                                            inp,
-                                                                                                            failExp
-                                                                                                          #)
-                                                                                                        GHC.Types.EQ ->
-                                                                                                          (#
-                                                                                                            init,
-                                                                                                            failExp GHC.Base.<> Data.Set.Internal.empty
-                                                                                                          #)
-                                                                                                        GHC.Types.GT ->
-                                                                                                          (#
-                                                                                                            init,
-                                                                                                            Data.Set.Internal.empty
-                                                                                                          #)
-                                                                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                                                                          else
-                                                                            let _ = "choicesBranch.else"
-                                                                             in if (GHC.Classes.==) '.' c
-                                                                                  then
-                                                                                    let _ = "choicesBranch.then"
-                                                                                     in let readFail = readFail
-                                                                                         in if readMore inp
-                                                                                              then
-                                                                                                let !(#
-                                                                                                       c,
-                                                                                                       cs
-                                                                                                       #) = readNext inp
-                                                                                                 in let _ = "resume"
-                                                                                                     in join
-                                                                                                          init
-                                                                                                          Data.Set.Internal.empty
-                                                                                                          ( let _ = "resume.genCode"
-                                                                                                             in Parsers.Brainfuck.Types.Output
-                                                                                                          )
-                                                                                                          cs
-                                                                                              else
-                                                                                                let _ = "checkHorizon.else"
-                                                                                                 in let failExp =
-                                                                                                          Data.Set.Internal.Bin
-                                                                                                            1
-                                                                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                                ( case inputToken of
-                                                                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
-                                                                                                                )
-                                                                                                            )
-                                                                                                            Data.Set.Internal.Tip
-                                                                                                            Data.Set.Internal.Tip
-                                                                                                     in let (#
-                                                                                                              farInp,
-                                                                                                              farExp
-                                                                                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                                                                                GHC.Types.LT ->
-                                                                                                                  (#
-                                                                                                                    inp,
-                                                                                                                    failExp
-                                                                                                                  #)
-                                                                                                                GHC.Types.EQ ->
-                                                                                                                  (#
-                                                                                                                    init,
-                                                                                                                    failExp GHC.Base.<> Data.Set.Internal.empty
-                                                                                                                  #)
-                                                                                                                GHC.Types.GT ->
-                                                                                                                  (#
-                                                                                                                    init,
-                                                                                                                    Data.Set.Internal.empty
-                                                                                                                  #)
-                                                                                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                                                                                  else
-                                                                                    let _ = "choicesBranch.else"
-                                                                                     in if (GHC.Classes.==) '[' c
-                                                                                          then
-                                                                                            let _ = "choicesBranch.then"
-                                                                                             in let readFail = readFail
-                                                                                                 in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 inp)
-                                                                                                      then
-                                                                                                        let !(#
-                                                                                                               c,
-                                                                                                               cs
-                                                                                                               #) = readNext inp
-                                                                                                         in name
-                                                                                                              ( let _ = "suspend"
-                                                                                                                 in \farInp farExp v (!inp) ->
-                                                                                                                      name
-                                                                                                                        ( let _ = "suspend"
-                                                                                                                           in \farInp farExp v (!inp) ->
-                                                                                                                                let readFail = readFail
-                                                                                                                                 in if readMore inp
-                                                                                                                                      then
-                                                                                                                                        let !(#
-                                                                                                                                               c,
-                                                                                                                                               cs
-                                                                                                                                               #) = readNext inp
-                                                                                                                                         in if (GHC.Classes.==) ']' c
-                                                                                                                                              then
-                                                                                                                                                let _ = "resume"
-                                                                                                                                                 in join
-                                                                                                                                                      farInp
-                                                                                                                                                      farExp
-                                                                                                                                                      ( let _ = "resume.genCode"
-                                                                                                                                                         in Parsers.Brainfuck.Types.Loop v
-                                                                                                                                                      )
-                                                                                                                                                      cs
-                                                                                                                                              else
-                                                                                                                                                let _ = "checkToken.else"
-                                                                                                                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                                                                                                                                      else
-                                                                                                                                        let _ = "checkHorizon.else"
-                                                                                                                                         in let failExp =
-                                                                                                                                                  Data.Set.Internal.Bin
-                                                                                                                                                    1
-                                                                                                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                                                                        ( case inputToken of
-                                                                                                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
-                                                                                                                                                        )
-                                                                                                                                                    )
-                                                                                                                                                    Data.Set.Internal.Tip
-                                                                                                                                                    Data.Set.Internal.Tip
-                                                                                                                                             in let (#
-                                                                                                                                                      farInp,
-                                                                                                                                                      farExp
-                                                                                                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
-                                                                                                                                                        GHC.Types.LT ->
-                                                                                                                                                          (#
-                                                                                                                                                            inp,
-                                                                                                                                                            failExp
-                                                                                                                                                          #)
-                                                                                                                                                        GHC.Types.EQ ->
-                                                                                                                                                          (#
-                                                                                                                                                            farInp,
-                                                                                                                                                            failExp GHC.Base.<> farExp
-                                                                                                                                                          #)
-                                                                                                                                                        GHC.Types.GT ->
-                                                                                                                                                          (#
-                                                                                                                                                            farInp,
-                                                                                                                                                            farExp
-                                                                                                                                                          #)
-                                                                                                                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                                                                                                                        )
-                                                                                                                        inp
-                                                                                                                        (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                                                                                              )
-                                                                                                              cs
-                                                                                                              (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                                                                                      else
-                                                                                                        let _ = "checkHorizon.else"
-                                                                                                         in let failExp =
-                                                                                                                  Data.Set.Internal.Bin
-                                                                                                                    1
-                                                                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                                        ( case inputToken of
-                                                                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
-                                                                                                                        )
-                                                                                                                    )
-                                                                                                                    Data.Set.Internal.Tip
-                                                                                                                    Data.Set.Internal.Tip
-                                                                                                             in let (#
-                                                                                                                      farInp,
-                                                                                                                      farExp
-                                                                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                                                                                        GHC.Types.LT ->
-                                                                                                                          (#
-                                                                                                                            inp,
-                                                                                                                            failExp
-                                                                                                                          #)
-                                                                                                                        GHC.Types.EQ ->
-                                                                                                                          (#
-                                                                                                                            init,
-                                                                                                                            failExp GHC.Base.<> Data.Set.Internal.empty
-                                                                                                                          #)
-                                                                                                                        GHC.Types.GT ->
-                                                                                                                          (#
-                                                                                                                            init,
-                                                                                                                            Data.Set.Internal.empty
-                                                                                                                          #)
-                                                                                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                                                                                          else
-                                                                                            let _ = "choicesBranch.else"
-                                                                                             in let failExp = Data.Set.Internal.Bin 1 (Symantic.Parser.Grammar.Combinators.SomeFailure Symantic.Parser.Grammar.Combinators.FailureEmpty) Data.Set.Internal.Tip Data.Set.Internal.Tip
-                                                                                                 in let (#
-                                                                                                          farInp,
-                                                                                                          farExp
-                                                                                                          #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                                                                            GHC.Types.LT ->
-                                                                                                              (#
-                                                                                                                inp,
-                                                                                                                failExp
-                                                                                                              #)
-                                                                                                            GHC.Types.EQ ->
-                                                                                                              (#
-                                                                                                                init,
-                                                                                                                failExp GHC.Base.<> Data.Set.Internal.empty
-                                                                                                              #)
-                                                                                                            GHC.Types.GT ->
-                                                                                                              (#
-                                                                                                                init,
-                                                                                                                Data.Set.Internal.empty
-                                                                                                              #)
-                                                                                                     in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                                  else
-                                    let _ = "checkHorizon.else"
-                                     in let failExp =
-                                              Data.Set.Internal.Bin
-                                                1
-                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                    ( case inputToken of
-                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
-                                                    )
-                                                )
-                                                Data.Set.Internal.Tip
-                                                Data.Set.Internal.Tip
-                                         in let (#
-                                                  farInp,
-                                                  farExp
-                                                  #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                    GHC.Types.LT ->
-                                                      (#
-                                                        inp,
-                                                        failExp
-                                                      #)
-                                                    GHC.Types.EQ ->
-                                                      (#
-                                                        init,
-                                                        failExp GHC.Base.<> Data.Set.Internal.empty
-                                                      #)
-                                                    GHC.Types.GT ->
-                                                      (#
-                                                        init,
-                                                        Data.Set.Internal.empty
-                                                      #)
-                                             in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-              name = \(!ok) (!inp) (!koByLabel) ->
-                let _ = "catch ExceptionFailure"
-                 in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                          let _ = "catch.ko ExceptionFailure"
-                           in if ( \( Data.Text.Internal.Text
-                                        _
-                                        i
-                                        _
-                                      )
-                                    ( Data.Text.Internal.Text
-                                        _
-                                        j
-                                        _
-                                      ) -> i GHC.Classes.== j
-                                 )
-                                inp
-                                failInp
-                                then
-                                  let _ = "choicesBranch.then"
-                                   in let _ = "resume"
-                                       in ok
-                                            farInp
-                                            farExp
-                                            ( let _ = "resume.genCode"
-                                               in \x -> x
-                                            )
-                                            failInp
-                                else
-                                  let _ = "choicesBranch.else"
-                                   in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                     in let readFail = catchHandler
-                         in if readMore inp
-                              then
-                                let !(#
-                                       c,
-                                       cs
-                                       #) = readNext inp
-                                 in if (\c -> GHC.Classes.not (('<' GHC.Classes.== c) GHC.Classes.|| (('>' GHC.Classes.== c) GHC.Classes.|| (('+' GHC.Classes.== c) GHC.Classes.|| (('-' GHC.Classes.== c) GHC.Classes.|| ((',' GHC.Classes.== c) GHC.Classes.|| (('.' GHC.Classes.== c) GHC.Classes.|| (('[' GHC.Classes.== c) GHC.Classes.|| ((']' GHC.Classes.== c) GHC.Classes.|| GHC.Types.False))))))))) c
-                                      then
-                                        name
-                                          ( let _ = "suspend"
-                                             in \farInp farExp v (!inp) ->
-                                                  let _ = "resume"
-                                                   in ok
-                                                        farInp
-                                                        farExp
-                                                        ( let _ = "resume.genCode"
-                                                           in \x -> v x
-                                                        )
-                                                        inp
-                                          )
-                                          cs
-                                          (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                      else
-                                        let _ = "checkToken.else"
-                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp init Data.Set.Internal.empty
-                              else
-                                let _ = "checkHorizon.else"
-                                 in let failExp =
-                                          Data.Set.Internal.Bin
-                                            1
-                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                ( case inputToken of
-                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
-                                                )
-                                            )
-                                            Data.Set.Internal.Tip
-                                            Data.Set.Internal.Tip
-                                     in let (#
-                                              farInp,
-                                              farExp
-                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                GHC.Types.LT ->
-                                                  (#
-                                                    inp,
-                                                    failExp
-                                                  #)
-                                                GHC.Types.EQ ->
-                                                  (#
-                                                    init,
-                                                    failExp GHC.Base.<> Data.Set.Internal.empty
-                                                  #)
-                                                GHC.Types.GT ->
-                                                  (#
-                                                    init,
-                                                    Data.Set.Internal.empty
-                                                  #)
-                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-           in name
-                ( let _ = "suspend"
-                   in \farInp farExp v (!inp) ->
-                        name
-                          ( let _ = "suspend"
-                             in \farInp farExp v (!inp) ->
-                                  let _ = "resume"
-                                   in finalRet
-                                        farInp
-                                        farExp
-                                        ( let _ = "resume.genCode"
-                                           in GHC.Show.show v
-                                        )
-                                        inp
-                          )
-                          inp
-                          Data.Map.Internal.Tip
-                )
-                init
-                Data.Map.Internal.Tip
diff --git a/test/Golden/Splice/G14.expected.txt b/test/Golden/Splice/G14.expected.txt
deleted file mode 100644
--- a/test/Golden/Splice/G14.expected.txt
+++ /dev/null
@@ -1,4218 +0,0 @@
-\(input :: inp) ->
-  let !(#
-         init,
-         readMore,
-         readNext
-         #) =
-          let _ = "cursorOf"
-           in let next
-                    ( t@( Data.Text.Internal.Text
-                            arr
-                            off
-                            unconsumed
-                          )
-                      ) =
-                      let !( Data.Text.Unsafe.Iter
-                               c
-                               d
-                             ) = Data.Text.Unsafe.iter t 0
-                       in (#
-                            c,
-                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
-                          #)
-                  more
-                    ( Data.Text.Internal.Text
-                        _
-                        _
-                        unconsumed
-                      ) = unconsumed GHC.Classes.> 0
-               in (# input, more, next #)
-      finalRet = \_farInp _farExp v _inp -> Data.Either.Right v
-      finalRaise ::
-        forall b.
-        Symantic.Parser.Machine.Generate.Catcher
-          inp
-          b = \(!exn) _failInp (!farInp) (!farExp) ->
-          Data.Either.Left
-            Symantic.Parser.Machine.Generate.ParsingError
-              { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
-                Symantic.Parser.Machine.Generate.parsingErrorException = exn,
-                Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
-                  if readMore farInp
-                    then
-                      GHC.Maybe.Just
-                        ( let (#
-                                c,
-                                _
-                                #) = readNext farInp
-                           in c
-                        )
-                    else GHC.Maybe.Nothing,
-                Symantic.Parser.Machine.Generate.parsingErrorExpecting = farExp
-              }
-   in let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
-       in let name = \(!ok) (!inp) (!koByLabel) ->
-                name
-                  ( let _ = "suspend"
-                     in \farInp farExp v (!inp) ->
-                          name
-                            ( let _ = "suspend"
-                               in \farInp farExp v (!inp) ->
-                                    name
-                                      ( let _ = "suspend"
-                                         in \farInp farExp v (!inp) ->
-                                              name
-                                                ( let _ = "suspend"
-                                                   in \farInp farExp v (!inp) ->
-                                                        let _ = "resume"
-                                                         in ok
-                                                              farInp
-                                                              farExp
-                                                              ( let _ = "resume.genCode"
-                                                                 in v
-                                                              )
-                                                              inp
-                                                )
-                                                inp
-                                                Data.Map.Internal.Tip
-                                      )
-                                      inp
-                                      (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel) Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                            )
-                            inp
-                            Data.Map.Internal.Tip
-                  )
-                  inp
-                  (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel) Data.Map.Internal.Tip Data.Map.Internal.Tip)
-              name = \(!ok) (!inp) (!koByLabel) ->
-                name
-                  ( let _ = "suspend"
-                     in \farInp farExp v (!inp) ->
-                          name
-                            ( let _ = "suspend"
-                               in \farInp farExp v (!inp) ->
-                                    let _ = "resume"
-                                     in ok
-                                          farInp
-                                          farExp
-                                          ( let _ = "resume.genCode"
-                                             in GHC.Tuple . ()
-                                          )
-                                          inp
-                            )
-                            inp
-                            (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel) Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                  )
-                  inp
-                  (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel) Data.Map.Internal.Tip Data.Map.Internal.Tip)
-              name = \(!ok) (!inp) (!koByLabel) ->
-                name
-                  ( let _ = "suspend"
-                     in \farInp farExp v (!inp) ->
-                          let join = \farInp farExp v (!inp) ->
-                                let _ = "resume"
-                                 in ok
-                                      farInp
-                                      farExp
-                                      ( let _ = "resume.genCode"
-                                         in v
-                                      )
-                                      inp
-                           in let _ = "catch ExceptionFailure"
-                               in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                                        let _ = "catch.ko ExceptionFailure"
-                                         in if ( \( Data.Text.Internal.Text
-                                                      _
-                                                      i
-                                                      _
-                                                    )
-                                                  ( Data.Text.Internal.Text
-                                                      _
-                                                      j
-                                                      _
-                                                    ) -> i GHC.Classes.== j
-                                               )
-                                              inp
-                                              failInp
-                                              then
-                                                let _ = "choicesBranch.then"
-                                                 in name
-                                                      ( let _ = "suspend"
-                                                         in \farInp farExp v (!inp) ->
-                                                              let _ = "resume"
-                                                               in join
-                                                                    farInp
-                                                                    farExp
-                                                                    ( let _ = "resume.genCode"
-                                                                       in v
-                                                                    )
-                                                                    inp
-                                                      )
-                                                      failInp
-                                                      Data.Map.Internal.Tip
-                                              else
-                                                let _ = "choicesBranch.else"
-                                                 in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                   in name
-                                        ( let _ = "suspend"
-                                           in \farInp farExp v (!inp) ->
-                                                let _ = "resume"
-                                                 in join
-                                                      farInp
-                                                      farExp
-                                                      ( let _ = "resume.genCode"
-                                                         in GHC.Tuple . ()
-                                                      )
-                                                      inp
-                                        )
-                                        inp
-                                        (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                  )
-                  inp
-                  (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel) Data.Map.Internal.Tip Data.Map.Internal.Tip)
-              name = \(!ok) (!inp) (!koByLabel) ->
-                let readFail = Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel
-                 in if readMore inp
-                      then
-                        let !(#
-                               c,
-                               cs
-                               #) = readNext inp
-                         in if GHC.Unicode.isSpace c
-                              then
-                                name
-                                  ( let _ = "suspend"
-                                     in \farInp farExp v (!inp) ->
-                                          let _ = "resume"
-                                           in ok
-                                                farInp
-                                                farExp
-                                                ( let _ = "resume.genCode"
-                                                   in v
-                                                )
-                                                inp
-                                  )
-                                  cs
-                                  Data.Map.Internal.Tip
-                              else
-                                let _ = "checkToken.else"
-                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp init Data.Set.Internal.empty
-                      else
-                        let _ = "checkHorizon.else"
-                         in let failExp =
-                                  Data.Set.Internal.Bin
-                                    1
-                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                        ( case inputToken of
-                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
-                                        )
-                                    )
-                                    Data.Set.Internal.Tip
-                                    Data.Set.Internal.Tip
-                             in let (#
-                                      farInp,
-                                      farExp
-                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                        GHC.Types.LT ->
-                                          (#
-                                            inp,
-                                            failExp
-                                          #)
-                                        GHC.Types.EQ ->
-                                          (#
-                                            init,
-                                            failExp GHC.Base.<> Data.Set.Internal.empty
-                                          #)
-                                        GHC.Types.GT ->
-                                          (#
-                                            init,
-                                            Data.Set.Internal.empty
-                                          #)
-                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-              name = \(!ok) (!inp) (!koByLabel) ->
-                let readFail = Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel
-                 in if readMore inp
-                      then
-                        let !(#
-                               c,
-                               cs
-                               #) = readNext inp
-                         in if (\t -> ('0' GHC.Classes.== t) GHC.Classes.|| (('1' GHC.Classes.== t) GHC.Classes.|| (('2' GHC.Classes.== t) GHC.Classes.|| (('3' GHC.Classes.== t) GHC.Classes.|| (('4' GHC.Classes.== t) GHC.Classes.|| (('5' GHC.Classes.== t) GHC.Classes.|| (('6' GHC.Classes.== t) GHC.Classes.|| (('7' GHC.Classes.== t) GHC.Classes.|| (('8' GHC.Classes.== t) GHC.Classes.|| (('9' GHC.Classes.== t) GHC.Classes.|| GHC.Types.False)))))))))) c
-                              then
-                                let _ = "resume"
-                                 in ok
-                                      init
-                                      Data.Set.Internal.empty
-                                      ( let _ = "resume.genCode"
-                                         in c
-                                      )
-                                      cs
-                              else
-                                let _ = "checkToken.else"
-                                 in let failExp =
-                                          Data.Set.Internal.Bin
-                                            10
-                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                ( case inputToken of
-                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '3'
-                                                )
-                                            )
-                                            ( Data.Set.Internal.Bin
-                                                3
-                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                    ( case inputToken of
-                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '1'
-                                                    )
-                                                )
-                                                ( Data.Set.Internal.Bin
-                                                    1
-                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                        ( case inputToken of
-                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '0'
-                                                        )
-                                                    )
-                                                    Data.Set.Internal.Tip
-                                                    Data.Set.Internal.Tip
-                                                )
-                                                ( Data.Set.Internal.Bin
-                                                    1
-                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                        ( case inputToken of
-                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '2'
-                                                        )
-                                                    )
-                                                    Data.Set.Internal.Tip
-                                                    Data.Set.Internal.Tip
-                                                )
-                                            )
-                                            ( Data.Set.Internal.Bin
-                                                6
-                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                    ( case inputToken of
-                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '7'
-                                                    )
-                                                )
-                                                ( Data.Set.Internal.Bin
-                                                    3
-                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                        ( case inputToken of
-                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '5'
-                                                        )
-                                                    )
-                                                    ( Data.Set.Internal.Bin
-                                                        1
-                                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                            ( case inputToken of
-                                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '4'
-                                                            )
-                                                        )
-                                                        Data.Set.Internal.Tip
-                                                        Data.Set.Internal.Tip
-                                                    )
-                                                    ( Data.Set.Internal.Bin
-                                                        1
-                                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                            ( case inputToken of
-                                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '6'
-                                                            )
-                                                        )
-                                                        Data.Set.Internal.Tip
-                                                        Data.Set.Internal.Tip
-                                                    )
-                                                )
-                                                ( Data.Set.Internal.Bin
-                                                    2
-                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                        ( case inputToken of
-                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '8'
-                                                        )
-                                                    )
-                                                    Data.Set.Internal.Tip
-                                                    ( Data.Set.Internal.Bin
-                                                        1
-                                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                            ( case inputToken of
-                                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '9'
-                                                            )
-                                                        )
-                                                        Data.Set.Internal.Tip
-                                                        Data.Set.Internal.Tip
-                                                    )
-                                                )
-                                            )
-                                     in let (#
-                                              farInp,
-                                              farExp
-                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                GHC.Types.LT ->
-                                                  (#
-                                                    inp,
-                                                    failExp
-                                                  #)
-                                                GHC.Types.EQ ->
-                                                  (#
-                                                    init,
-                                                    failExp GHC.Base.<> Data.Set.Internal.empty
-                                                  #)
-                                                GHC.Types.GT ->
-                                                  (#
-                                                    init,
-                                                    Data.Set.Internal.empty
-                                                  #)
-                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                      else
-                        let _ = "checkHorizon.else"
-                         in let failExp =
-                                  Data.Set.Internal.Bin
-                                    1
-                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                        ( case inputToken of
-                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
-                                        )
-                                    )
-                                    Data.Set.Internal.Tip
-                                    Data.Set.Internal.Tip
-                             in let (#
-                                      farInp,
-                                      farExp
-                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                        GHC.Types.LT ->
-                                          (#
-                                            inp,
-                                            failExp
-                                          #)
-                                        GHC.Types.EQ ->
-                                          (#
-                                            init,
-                                            failExp GHC.Base.<> Data.Set.Internal.empty
-                                          #)
-                                        GHC.Types.GT ->
-                                          (#
-                                            init,
-                                            Data.Set.Internal.empty
-                                          #)
-                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-              name = \(!ok) (!inp) (!koByLabel) ->
-                let readFail = Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel
-                 in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 inp)
-                      then
-                        let !(#
-                               c,
-                               cs
-                               #) = readNext inp
-                         in if (GHC.Classes.==) '(' c
-                              then
-                                name
-                                  ( let _ = "suspend"
-                                     in \farInp farExp v (!inp) ->
-                                          let _ = "resume"
-                                           in ok
-                                                farInp
-                                                farExp
-                                                ( let _ = "resume.genCode"
-                                                   in '('
-                                                )
-                                                inp
-                                  )
-                                  cs
-                                  (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                              else
-                                let _ = "checkToken.else"
-                                 in let failExp =
-                                          Data.Set.Internal.Bin
-                                            1
-                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                ( case inputToken of
-                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '('
-                                                )
-                                            )
-                                            Data.Set.Internal.Tip
-                                            Data.Set.Internal.Tip
-                                     in let (#
-                                              farInp,
-                                              farExp
-                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                GHC.Types.LT ->
-                                                  (#
-                                                    inp,
-                                                    failExp
-                                                  #)
-                                                GHC.Types.EQ ->
-                                                  (#
-                                                    init,
-                                                    failExp GHC.Base.<> Data.Set.Internal.empty
-                                                  #)
-                                                GHC.Types.GT ->
-                                                  (#
-                                                    init,
-                                                    Data.Set.Internal.empty
-                                                  #)
-                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                      else
-                        let _ = "checkHorizon.else"
-                         in let failExp =
-                                  Data.Set.Internal.Bin
-                                    1
-                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                        ( case inputToken of
-                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
-                                        )
-                                    )
-                                    Data.Set.Internal.Tip
-                                    Data.Set.Internal.Tip
-                             in let (#
-                                      farInp,
-                                      farExp
-                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                        GHC.Types.LT ->
-                                          (#
-                                            inp,
-                                            failExp
-                                          #)
-                                        GHC.Types.EQ ->
-                                          (#
-                                            init,
-                                            failExp GHC.Base.<> Data.Set.Internal.empty
-                                          #)
-                                        GHC.Types.GT ->
-                                          (#
-                                            init,
-                                            Data.Set.Internal.empty
-                                          #)
-                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-              name = \(!ok) (!inp) (!koByLabel) ->
-                let readFail = Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel
-                 in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 inp)
-                      then
-                        let !(#
-                               c,
-                               cs
-                               #) = readNext inp
-                         in if (GHC.Classes.==) ')' c
-                              then
-                                name
-                                  ( let _ = "suspend"
-                                     in \farInp farExp v (!inp) ->
-                                          let _ = "resume"
-                                           in ok
-                                                farInp
-                                                farExp
-                                                ( let _ = "resume.genCode"
-                                                   in ')'
-                                                )
-                                                inp
-                                  )
-                                  cs
-                                  (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                              else
-                                let _ = "checkToken.else"
-                                 in let failExp =
-                                          Data.Set.Internal.Bin
-                                            1
-                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                ( case inputToken of
-                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken ')'
-                                                )
-                                            )
-                                            Data.Set.Internal.Tip
-                                            Data.Set.Internal.Tip
-                                     in let (#
-                                              farInp,
-                                              farExp
-                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                GHC.Types.LT ->
-                                                  (#
-                                                    inp,
-                                                    failExp
-                                                  #)
-                                                GHC.Types.EQ ->
-                                                  (#
-                                                    init,
-                                                    failExp GHC.Base.<> Data.Set.Internal.empty
-                                                  #)
-                                                GHC.Types.GT ->
-                                                  (#
-                                                    init,
-                                                    Data.Set.Internal.empty
-                                                  #)
-                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                      else
-                        let _ = "checkHorizon.else"
-                         in let failExp =
-                                  Data.Set.Internal.Bin
-                                    1
-                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                        ( case inputToken of
-                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
-                                        )
-                                    )
-                                    Data.Set.Internal.Tip
-                                    Data.Set.Internal.Tip
-                             in let (#
-                                      farInp,
-                                      farExp
-                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                        GHC.Types.LT ->
-                                          (#
-                                            inp,
-                                            failExp
-                                          #)
-                                        GHC.Types.EQ ->
-                                          (#
-                                            init,
-                                            failExp GHC.Base.<> Data.Set.Internal.empty
-                                          #)
-                                        GHC.Types.GT ->
-                                          (#
-                                            init,
-                                            Data.Set.Internal.empty
-                                          #)
-                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-              name = \(!ok) (!inp) (!koByLabel) ->
-                let readFail = Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel
-                 in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 inp)
-                      then
-                        let !(#
-                               c,
-                               cs
-                               #) = readNext inp
-                         in if (GHC.Classes.==) ',' c
-                              then
-                                name
-                                  ( let _ = "suspend"
-                                     in \farInp farExp v (!inp) ->
-                                          let _ = "resume"
-                                           in ok
-                                                farInp
-                                                farExp
-                                                ( let _ = "resume.genCode"
-                                                   in ','
-                                                )
-                                                inp
-                                  )
-                                  cs
-                                  (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                              else
-                                let _ = "checkToken.else"
-                                 in let failExp =
-                                          Data.Set.Internal.Bin
-                                            1
-                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                ( case inputToken of
-                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken ','
-                                                )
-                                            )
-                                            Data.Set.Internal.Tip
-                                            Data.Set.Internal.Tip
-                                     in let (#
-                                              farInp,
-                                              farExp
-                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                GHC.Types.LT ->
-                                                  (#
-                                                    inp,
-                                                    failExp
-                                                  #)
-                                                GHC.Types.EQ ->
-                                                  (#
-                                                    init,
-                                                    failExp GHC.Base.<> Data.Set.Internal.empty
-                                                  #)
-                                                GHC.Types.GT ->
-                                                  (#
-                                                    init,
-                                                    Data.Set.Internal.empty
-                                                  #)
-                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                      else
-                        let _ = "checkHorizon.else"
-                         in let failExp =
-                                  Data.Set.Internal.Bin
-                                    1
-                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                        ( case inputToken of
-                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
-                                        )
-                                    )
-                                    Data.Set.Internal.Tip
-                                    Data.Set.Internal.Tip
-                             in let (#
-                                      farInp,
-                                      farExp
-                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                        GHC.Types.LT ->
-                                          (#
-                                            inp,
-                                            failExp
-                                          #)
-                                        GHC.Types.EQ ->
-                                          (#
-                                            init,
-                                            failExp GHC.Base.<> Data.Set.Internal.empty
-                                          #)
-                                        GHC.Types.GT ->
-                                          (#
-                                            init,
-                                            Data.Set.Internal.empty
-                                          #)
-                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-              name = \(!ok) (!inp) (!koByLabel) ->
-                let readFail = Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel
-                 in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 inp)
-                      then
-                        let !(#
-                               c,
-                               cs
-                               #) = readNext inp
-                         in if (GHC.Classes.==) ';' c
-                              then
-                                name
-                                  ( let _ = "suspend"
-                                     in \farInp farExp v (!inp) ->
-                                          let _ = "resume"
-                                           in ok
-                                                farInp
-                                                farExp
-                                                ( let _ = "resume.genCode"
-                                                   in ';'
-                                                )
-                                                inp
-                                  )
-                                  cs
-                                  (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                              else
-                                let _ = "checkToken.else"
-                                 in let failExp =
-                                          Data.Set.Internal.Bin
-                                            1
-                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                ( case inputToken of
-                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken ';'
-                                                )
-                                            )
-                                            Data.Set.Internal.Tip
-                                            Data.Set.Internal.Tip
-                                     in let (#
-                                              farInp,
-                                              farExp
-                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                GHC.Types.LT ->
-                                                  (#
-                                                    inp,
-                                                    failExp
-                                                  #)
-                                                GHC.Types.EQ ->
-                                                  (#
-                                                    init,
-                                                    failExp GHC.Base.<> Data.Set.Internal.empty
-                                                  #)
-                                                GHC.Types.GT ->
-                                                  (#
-                                                    init,
-                                                    Data.Set.Internal.empty
-                                                  #)
-                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                      else
-                        let _ = "checkHorizon.else"
-                         in let failExp =
-                                  Data.Set.Internal.Bin
-                                    1
-                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                        ( case inputToken of
-                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
-                                        )
-                                    )
-                                    Data.Set.Internal.Tip
-                                    Data.Set.Internal.Tip
-                             in let (#
-                                      farInp,
-                                      farExp
-                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                        GHC.Types.LT ->
-                                          (#
-                                            inp,
-                                            failExp
-                                          #)
-                                        GHC.Types.EQ ->
-                                          (#
-                                            init,
-                                            failExp GHC.Base.<> Data.Set.Internal.empty
-                                          #)
-                                        GHC.Types.GT ->
-                                          (#
-                                            init,
-                                            Data.Set.Internal.empty
-                                          #)
-                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-              name = \(!ok) (!inp) (!koByLabel) ->
-                let readFail = Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel
-                 in if readMore (Symantic.Parser.Machine.Input.shiftRightText 3 inp)
-                      then
-                        let !(#
-                               c,
-                               cs
-                               #) = readNext inp
-                         in if (GHC.Classes.==) '{' c
-                              then
-                                name
-                                  ( let _ = "suspend"
-                                     in \farInp farExp v (!inp) ->
-                                          name
-                                            ( let _ = "suspend"
-                                               in \farInp farExp v (!inp) ->
-                                                    name
-                                                      ( let _ = "suspend"
-                                                         in \farInp farExp v (!inp) ->
-                                                              name
-                                                                ( let _ = "suspend"
-                                                                   in \farInp farExp v (!inp) ->
-                                                                        let readFail = readFail
-                                                                         in if readMore inp
-                                                                              then
-                                                                                let !(#
-                                                                                       c,
-                                                                                       cs
-                                                                                       #) = readNext inp
-                                                                                 in if (GHC.Classes.==) '}' c
-                                                                                      then
-                                                                                        name
-                                                                                          ( let _ = "suspend"
-                                                                                             in \farInp farExp v (!inp) ->
-                                                                                                  let _ = "resume"
-                                                                                                   in ok
-                                                                                                        farInp
-                                                                                                        farExp
-                                                                                                        ( let _ = "resume.genCode"
-                                                                                                           in v
-                                                                                                        )
-                                                                                                        inp
-                                                                                          )
-                                                                                          cs
-                                                                                          (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                                                                      else
-                                                                                        let _ = "checkToken.else"
-                                                                                         in let failExp =
-                                                                                                  Data.Set.Internal.Bin
-                                                                                                    1
-                                                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                        ( case inputToken of
-                                                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '}'
-                                                                                                        )
-                                                                                                    )
-                                                                                                    Data.Set.Internal.Tip
-                                                                                                    Data.Set.Internal.Tip
-                                                                                             in let (#
-                                                                                                      farInp,
-                                                                                                      farExp
-                                                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
-                                                                                                        GHC.Types.LT ->
-                                                                                                          (#
-                                                                                                            inp,
-                                                                                                            failExp
-                                                                                                          #)
-                                                                                                        GHC.Types.EQ ->
-                                                                                                          (#
-                                                                                                            farInp,
-                                                                                                            failExp GHC.Base.<> farExp
-                                                                                                          #)
-                                                                                                        GHC.Types.GT ->
-                                                                                                          (#
-                                                                                                            farInp,
-                                                                                                            farExp
-                                                                                                          #)
-                                                                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                                                                              else
-                                                                                let _ = "checkHorizon.else"
-                                                                                 in let failExp =
-                                                                                          Data.Set.Internal.Bin
-                                                                                            1
-                                                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                ( case inputToken of
-                                                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
-                                                                                                )
-                                                                                            )
-                                                                                            Data.Set.Internal.Tip
-                                                                                            Data.Set.Internal.Tip
-                                                                                     in let (#
-                                                                                              farInp,
-                                                                                              farExp
-                                                                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
-                                                                                                GHC.Types.LT ->
-                                                                                                  (#
-                                                                                                    inp,
-                                                                                                    failExp
-                                                                                                  #)
-                                                                                                GHC.Types.EQ ->
-                                                                                                  (#
-                                                                                                    farInp,
-                                                                                                    failExp GHC.Base.<> farExp
-                                                                                                  #)
-                                                                                                GHC.Types.GT ->
-                                                                                                  (#
-                                                                                                    farInp,
-                                                                                                    farExp
-                                                                                                  #)
-                                                                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                                                                )
-                                                                inp
-                                                                Data.Map.Internal.Tip
-                                                      )
-                                                      inp
-                                                      (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                            )
-                                            inp
-                                            Data.Map.Internal.Tip
-                                  )
-                                  cs
-                                  (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                              else
-                                let _ = "checkToken.else"
-                                 in let failExp =
-                                          Data.Set.Internal.Bin
-                                            1
-                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                ( case inputToken of
-                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '{'
-                                                )
-                                            )
-                                            Data.Set.Internal.Tip
-                                            Data.Set.Internal.Tip
-                                     in let (#
-                                              farInp,
-                                              farExp
-                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                GHC.Types.LT ->
-                                                  (#
-                                                    inp,
-                                                    failExp
-                                                  #)
-                                                GHC.Types.EQ ->
-                                                  (#
-                                                    init,
-                                                    failExp GHC.Base.<> Data.Set.Internal.empty
-                                                  #)
-                                                GHC.Types.GT ->
-                                                  (#
-                                                    init,
-                                                    Data.Set.Internal.empty
-                                                  #)
-                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                      else
-                        let _ = "checkHorizon.else"
-                         in let failExp =
-                                  Data.Set.Internal.Bin
-                                    1
-                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                        ( case inputToken of
-                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 4
-                                        )
-                                    )
-                                    Data.Set.Internal.Tip
-                                    Data.Set.Internal.Tip
-                             in let (#
-                                      farInp,
-                                      farExp
-                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                        GHC.Types.LT ->
-                                          (#
-                                            inp,
-                                            failExp
-                                          #)
-                                        GHC.Types.EQ ->
-                                          (#
-                                            init,
-                                            failExp GHC.Base.<> Data.Set.Internal.empty
-                                          #)
-                                        GHC.Types.GT ->
-                                          (#
-                                            init,
-                                            Data.Set.Internal.empty
-                                          #)
-                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-              name = \(!ok) (!inp) (!koByLabel) ->
-                let readFail = Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel
-                 in if readMore (Symantic.Parser.Machine.Input.shiftRightText 4 inp)
-                      then
-                        let !(#
-                               c,
-                               cs
-                               #) = readNext inp
-                         in if (GHC.Classes.==) '[' c
-                              then
-                                name
-                                  ( let _ = "suspend"
-                                     in \farInp farExp v (!inp) ->
-                                          name
-                                            ( let _ = "suspend"
-                                               in \farInp farExp v (!inp) ->
-                                                    name
-                                                      ( let _ = "suspend"
-                                                         in \farInp farExp v (!inp) ->
-                                                              let readFail = readFail
-                                                               in if readMore inp
-                                                                    then
-                                                                      let !(#
-                                                                             c,
-                                                                             cs
-                                                                             #) = readNext inp
-                                                                       in if (GHC.Classes.==) ']' c
-                                                                            then
-                                                                              name
-                                                                                ( let _ = "suspend"
-                                                                                   in \farInp farExp v (!inp) ->
-                                                                                        let _ = "resume"
-                                                                                         in ok
-                                                                                              farInp
-                                                                                              farExp
-                                                                                              ( let _ = "resume.genCode"
-                                                                                                 in GHC.Tuple . ()
-                                                                                              )
-                                                                                              inp
-                                                                                )
-                                                                                cs
-                                                                                (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                                                            else
-                                                                              let _ = "checkToken.else"
-                                                                               in let failExp =
-                                                                                        Data.Set.Internal.Bin
-                                                                                          1
-                                                                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                              ( case inputToken of
-                                                                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken ']'
-                                                                                              )
-                                                                                          )
-                                                                                          Data.Set.Internal.Tip
-                                                                                          Data.Set.Internal.Tip
-                                                                                   in let (#
-                                                                                            farInp,
-                                                                                            farExp
-                                                                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
-                                                                                              GHC.Types.LT ->
-                                                                                                (#
-                                                                                                  inp,
-                                                                                                  failExp
-                                                                                                #)
-                                                                                              GHC.Types.EQ ->
-                                                                                                (#
-                                                                                                  farInp,
-                                                                                                  failExp GHC.Base.<> farExp
-                                                                                                #)
-                                                                                              GHC.Types.GT ->
-                                                                                                (#
-                                                                                                  farInp,
-                                                                                                  farExp
-                                                                                                #)
-                                                                                       in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                                                                    else
-                                                                      let _ = "checkHorizon.else"
-                                                                       in let failExp =
-                                                                                Data.Set.Internal.Bin
-                                                                                  1
-                                                                                  ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                      ( case inputToken of
-                                                                                          (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
-                                                                                      )
-                                                                                  )
-                                                                                  Data.Set.Internal.Tip
-                                                                                  Data.Set.Internal.Tip
-                                                                           in let (#
-                                                                                    farInp,
-                                                                                    farExp
-                                                                                    #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
-                                                                                      GHC.Types.LT ->
-                                                                                        (#
-                                                                                          inp,
-                                                                                          failExp
-                                                                                        #)
-                                                                                      GHC.Types.EQ ->
-                                                                                        (#
-                                                                                          farInp,
-                                                                                          failExp GHC.Base.<> farExp
-                                                                                        #)
-                                                                                      GHC.Types.GT ->
-                                                                                        (#
-                                                                                          farInp,
-                                                                                          farExp
-                                                                                        #)
-                                                                               in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                                                      )
-                                                      inp
-                                                      (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                            )
-                                            inp
-                                            (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                  )
-                                  cs
-                                  (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                              else
-                                let _ = "checkToken.else"
-                                 in let failExp =
-                                          Data.Set.Internal.Bin
-                                            1
-                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                ( case inputToken of
-                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '['
-                                                )
-                                            )
-                                            Data.Set.Internal.Tip
-                                            Data.Set.Internal.Tip
-                                     in let (#
-                                              farInp,
-                                              farExp
-                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                GHC.Types.LT ->
-                                                  (#
-                                                    inp,
-                                                    failExp
-                                                  #)
-                                                GHC.Types.EQ ->
-                                                  (#
-                                                    init,
-                                                    failExp GHC.Base.<> Data.Set.Internal.empty
-                                                  #)
-                                                GHC.Types.GT ->
-                                                  (#
-                                                    init,
-                                                    Data.Set.Internal.empty
-                                                  #)
-                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                      else
-                        let _ = "checkHorizon.else"
-                         in let failExp =
-                                  Data.Set.Internal.Bin
-                                    1
-                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                        ( case inputToken of
-                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 5
-                                        )
-                                    )
-                                    Data.Set.Internal.Tip
-                                    Data.Set.Internal.Tip
-                             in let (#
-                                      farInp,
-                                      farExp
-                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                        GHC.Types.LT ->
-                                          (#
-                                            inp,
-                                            failExp
-                                          #)
-                                        GHC.Types.EQ ->
-                                          (#
-                                            init,
-                                            failExp GHC.Base.<> Data.Set.Internal.empty
-                                          #)
-                                        GHC.Types.GT ->
-                                          (#
-                                            init,
-                                            Data.Set.Internal.empty
-                                          #)
-                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-              name = \(!ok) (!inp) (!koByLabel) ->
-                let _ = "catch ExceptionFailure"
-                 in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                          let _ = "catch.ko ExceptionFailure"
-                           in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                     in let readFail = catchHandler
-                         in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 inp)
-                              then
-                                let !(#
-                                       c,
-                                       cs
-                                       #) = readNext inp
-                                 in if Parsers.Nandlang.nandIdentStart c
-                                      then
-                                        name
-                                          ( let _ = "suspend"
-                                             in \farInp farExp v (!inp) ->
-                                                  name
-                                                    ( let _ = "suspend"
-                                                       in \farInp farExp v (!inp) ->
-                                                            name
-                                                              ( let _ = "suspend"
-                                                                 in \farInp farExp v (!inp) ->
-                                                                      name
-                                                                        ( let _ = "suspend"
-                                                                           in \farInp farExp v (!inp) ->
-                                                                                let _ = "resume"
-                                                                                 in ok
-                                                                                      farInp
-                                                                                      farExp
-                                                                                      ( let _ = "resume.genCode"
-                                                                                         in v
-                                                                                      )
-                                                                                      inp
-                                                                        )
-                                                                        inp
-                                                                        (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel) Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                                              )
-                                                              inp
-                                                              Data.Map.Internal.Tip
-                                                    )
-                                                    inp
-                                                    (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                          )
-                                          cs
-                                          Data.Map.Internal.Tip
-                                      else
-                                        let _ = "checkToken.else"
-                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp init Data.Set.Internal.empty
-                              else
-                                let _ = "checkHorizon.else"
-                                 in let failExp =
-                                          Data.Set.Internal.Bin
-                                            1
-                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                ( case inputToken of
-                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
-                                                )
-                                            )
-                                            Data.Set.Internal.Tip
-                                            Data.Set.Internal.Tip
-                                     in let (#
-                                              farInp,
-                                              farExp
-                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                GHC.Types.LT ->
-                                                  (#
-                                                    inp,
-                                                    failExp
-                                                  #)
-                                                GHC.Types.EQ ->
-                                                  (#
-                                                    init,
-                                                    failExp GHC.Base.<> Data.Set.Internal.empty
-                                                  #)
-                                                GHC.Types.GT ->
-                                                  (#
-                                                    init,
-                                                    Data.Set.Internal.empty
-                                                  #)
-                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-              name = \(!ok) (!inp) (!koByLabel) ->
-                let _ = "catch ExceptionFailure"
-                 in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                          let _ = "catch.ko ExceptionFailure"
-                           in if ( \( Data.Text.Internal.Text
-                                        _
-                                        i
-                                        _
-                                      )
-                                    ( Data.Text.Internal.Text
-                                        _
-                                        j
-                                        _
-                                      ) -> i GHC.Classes.== j
-                                 )
-                                inp
-                                failInp
-                                then
-                                  let _ = "choicesBranch.then"
-                                   in name
-                                        ( let _ = "suspend"
-                                           in \farInp farExp v (!inp) ->
-                                                let join = \farInp farExp v (!inp) ->
-                                                      let _ = "resume"
-                                                       in ok
-                                                            farInp
-                                                            farExp
-                                                            ( let _ = "resume.genCode"
-                                                               in v
-                                                            )
-                                                            inp
-                                                 in let _ = "catch ExceptionFailure"
-                                                     in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                                                              let _ = "catch.ko ExceptionFailure"
-                                                               in if ( \( Data.Text.Internal.Text
-                                                                            _
-                                                                            i
-                                                                            _
-                                                                          )
-                                                                        ( Data.Text.Internal.Text
-                                                                            _
-                                                                            j
-                                                                            _
-                                                                          ) -> i GHC.Classes.== j
-                                                                     )
-                                                                    inp
-                                                                    failInp
-                                                                    then
-                                                                      let _ = "choicesBranch.then"
-                                                                       in name
-                                                                            ( let _ = "suspend"
-                                                                               in \farInp farExp v (!inp) ->
-                                                                                    let _ = "resume"
-                                                                                     in join
-                                                                                          farInp
-                                                                                          farExp
-                                                                                          ( let _ = "resume.genCode"
-                                                                                             in v
-                                                                                          )
-                                                                                          inp
-                                                                            )
-                                                                            failInp
-                                                                            Data.Map.Internal.Tip
-                                                                    else
-                                                                      let _ = "choicesBranch.else"
-                                                                       in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                                         in let join = \farInp farExp v (!inp) ->
-                                                                  let _ = "resume"
-                                                                   in join
-                                                                        farInp
-                                                                        farExp
-                                                                        ( let _ = "resume.genCode"
-                                                                           in GHC.Tuple . ()
-                                                                        )
-                                                                        inp
-                                                             in let _ = "catch ExceptionFailure"
-                                                                 in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                                                                          let _ = "catch.ko ExceptionFailure"
-                                                                           in if ( \( Data.Text.Internal.Text
-                                                                                        _
-                                                                                        i
-                                                                                        _
-                                                                                      )
-                                                                                    ( Data.Text.Internal.Text
-                                                                                        _
-                                                                                        j
-                                                                                        _
-                                                                                      ) -> i GHC.Classes.== j
-                                                                                 )
-                                                                                inp
-                                                                                failInp
-                                                                                then
-                                                                                  let _ = "choicesBranch.then"
-                                                                                   in name
-                                                                                        ( let _ = "suspend"
-                                                                                           in \farInp farExp v (!inp) ->
-                                                                                                let _ = "resume"
-                                                                                                 in join
-                                                                                                      farInp
-                                                                                                      farExp
-                                                                                                      ( let _ = "resume.genCode"
-                                                                                                         in v
-                                                                                                      )
-                                                                                                      inp
-                                                                                        )
-                                                                                        failInp
-                                                                                        (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                                                                else
-                                                                                  let _ = "choicesBranch.else"
-                                                                                   in catchHandler Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                                                     in name
-                                                                          ( let _ = "suspend"
-                                                                             in \farInp farExp v (!inp) ->
-                                                                                  let join = \farInp farExp v (!inp) ->
-                                                                                        name
-                                                                                          ( let _ = "suspend"
-                                                                                             in \farInp farExp v (!inp) ->
-                                                                                                  let _ = "resume"
-                                                                                                   in join
-                                                                                                        farInp
-                                                                                                        farExp
-                                                                                                        ( let _ = "resume.genCode"
-                                                                                                           in v
-                                                                                                        )
-                                                                                                        inp
-                                                                                          )
-                                                                                          inp
-                                                                                          (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                                                                   in let _ = "catch ExceptionFailure"
-                                                                                       in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                                                                                                let _ = "catch.ko ExceptionFailure"
-                                                                                                 in if ( \( Data.Text.Internal.Text
-                                                                                                              _
-                                                                                                              i
-                                                                                                              _
-                                                                                                            )
-                                                                                                          ( Data.Text.Internal.Text
-                                                                                                              _
-                                                                                                              j
-                                                                                                              _
-                                                                                                            ) -> i GHC.Classes.== j
-                                                                                                       )
-                                                                                                      inp
-                                                                                                      failInp
-                                                                                                      then
-                                                                                                        let _ = "choicesBranch.then"
-                                                                                                         in name
-                                                                                                              ( let _ = "suspend"
-                                                                                                                 in \farInp farExp v (!inp) ->
-                                                                                                                      let _ = "resume"
-                                                                                                                       in join
-                                                                                                                            farInp
-                                                                                                                            farExp
-                                                                                                                            ( let _ = "resume.genCode"
-                                                                                                                               in v
-                                                                                                                            )
-                                                                                                                            inp
-                                                                                                              )
-                                                                                                              failInp
-                                                                                                              Data.Map.Internal.Tip
-                                                                                                      else
-                                                                                                        let _ = "choicesBranch.else"
-                                                                                                         in catchHandler Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                                                                           in name
-                                                                                                ( let _ = "suspend"
-                                                                                                   in \farInp farExp v (!inp) ->
-                                                                                                        name
-                                                                                                          ( let _ = "suspend"
-                                                                                                             in \farInp farExp v (!inp) ->
-                                                                                                                  name
-                                                                                                                    ( let _ = "suspend"
-                                                                                                                       in \farInp farExp v (!inp) ->
-                                                                                                                            name
-                                                                                                                              ( let _ = "suspend"
-                                                                                                                                 in \farInp farExp v (!inp) ->
-                                                                                                                                      let _ = "resume"
-                                                                                                                                       in join
-                                                                                                                                            farInp
-                                                                                                                                            farExp
-                                                                                                                                            ( let _ = "resume.genCode"
-                                                                                                                                               in GHC.Tuple . ()
-                                                                                                                                            )
-                                                                                                                                            inp
-                                                                                                                              )
-                                                                                                                              inp
-                                                                                                                              Data.Map.Internal.Tip
-                                                                                                                    )
-                                                                                                                    inp
-                                                                                                                    (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                                                                                          )
-                                                                                                          inp
-                                                                                                          Data.Map.Internal.Tip
-                                                                                                )
-                                                                                                inp
-                                                                                                (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                                                          )
-                                                                          inp
-                                                                          (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                        )
-                                        failInp
-                                        (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel) Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                else
-                                  let _ = "choicesBranch.else"
-                                   in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                     in let join = \farInp farExp v (!inp) ->
-                              let _ = "resume"
-                               in ok
-                                    farInp
-                                    farExp
-                                    ( let _ = "resume.genCode"
-                                       in v
-                                    )
-                                    inp
-                         in let _ = "catch ExceptionFailure"
-                             in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                                      let _ = "catch.ko ExceptionFailure"
-                                       in if ( \( Data.Text.Internal.Text
-                                                    _
-                                                    i
-                                                    _
-                                                  )
-                                                ( Data.Text.Internal.Text
-                                                    _
-                                                    j
-                                                    _
-                                                  ) -> i GHC.Classes.== j
-                                             )
-                                            inp
-                                            failInp
-                                            then
-                                              let _ = "choicesBranch.then"
-                                               in let readFail = catchHandler
-                                                   in if readMore (Symantic.Parser.Machine.Input.shiftRightText 3 failInp)
-                                                        then
-                                                          let !(#
-                                                                 c,
-                                                                 cs
-                                                                 #) = readNext failInp
-                                                           in if (GHC.Classes.==) '\'' c
-                                                                then
-                                                                  let join = \farInp farExp v (!inp) ->
-                                                                        let readFail = readFail
-                                                                         in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 inp)
-                                                                              then
-                                                                                let !(#
-                                                                                       c,
-                                                                                       cs
-                                                                                       #) = readNext inp
-                                                                                 in if (GHC.Classes.==) '\'' c
-                                                                                      then
-                                                                                        name
-                                                                                          ( let _ = "suspend"
-                                                                                             in \farInp farExp v (!inp) ->
-                                                                                                  let _ = "resume"
-                                                                                                   in join
-                                                                                                        farInp
-                                                                                                        farExp
-                                                                                                        ( let _ = "resume.genCode"
-                                                                                                           in v
-                                                                                                        )
-                                                                                                        inp
-                                                                                          )
-                                                                                          cs
-                                                                                          (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                                                                      else
-                                                                                        let _ = "checkToken.else"
-                                                                                         in let failExp =
-                                                                                                  Data.Set.Internal.Bin
-                                                                                                    1
-                                                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                        ( case inputToken of
-                                                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '\''
-                                                                                                        )
-                                                                                                    )
-                                                                                                    Data.Set.Internal.Tip
-                                                                                                    Data.Set.Internal.Tip
-                                                                                             in let (#
-                                                                                                      farInp,
-                                                                                                      farExp
-                                                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
-                                                                                                        GHC.Types.LT ->
-                                                                                                          (#
-                                                                                                            inp,
-                                                                                                            failExp
-                                                                                                          #)
-                                                                                                        GHC.Types.EQ ->
-                                                                                                          (#
-                                                                                                            farInp,
-                                                                                                            failExp GHC.Base.<> farExp
-                                                                                                          #)
-                                                                                                        GHC.Types.GT ->
-                                                                                                          (#
-                                                                                                            farInp,
-                                                                                                            farExp
-                                                                                                          #)
-                                                                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                                                                              else
-                                                                                let _ = "checkHorizon.else"
-                                                                                 in let failExp =
-                                                                                          Data.Set.Internal.Bin
-                                                                                            1
-                                                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                ( case inputToken of
-                                                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
-                                                                                                )
-                                                                                            )
-                                                                                            Data.Set.Internal.Tip
-                                                                                            Data.Set.Internal.Tip
-                                                                                     in let (#
-                                                                                              farInp,
-                                                                                              farExp
-                                                                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
-                                                                                                GHC.Types.LT ->
-                                                                                                  (#
-                                                                                                    inp,
-                                                                                                    failExp
-                                                                                                  #)
-                                                                                                GHC.Types.EQ ->
-                                                                                                  (#
-                                                                                                    farInp,
-                                                                                                    failExp GHC.Base.<> farExp
-                                                                                                  #)
-                                                                                                GHC.Types.GT ->
-                                                                                                  (#
-                                                                                                    farInp,
-                                                                                                    farExp
-                                                                                                  #)
-                                                                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                                                                   in let _ = "catch ExceptionFailure"
-                                                                       in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                                                                                let _ = "catch.ko ExceptionFailure"
-                                                                                 in if ( \( Data.Text.Internal.Text
-                                                                                              _
-                                                                                              i
-                                                                                              _
-                                                                                            )
-                                                                                          ( Data.Text.Internal.Text
-                                                                                              _
-                                                                                              j
-                                                                                              _
-                                                                                            ) -> i GHC.Classes.== j
-                                                                                       )
-                                                                                      cs
-                                                                                      failInp
-                                                                                      then
-                                                                                        let _ = "choicesBranch.then"
-                                                                                         in let readFail = readFail
-                                                                                             in if readMore (Symantic.Parser.Machine.Input.shiftRightText 3 failInp)
-                                                                                                  then
-                                                                                                    let !(#
-                                                                                                           c,
-                                                                                                           cs
-                                                                                                           #) = readNext failInp
-                                                                                                     in if (GHC.Classes.==) '\\' c
-                                                                                                          then
-                                                                                                            let readFail = readFail
-                                                                                                             in let !(#
-                                                                                                                       c,
-                                                                                                                       cs
-                                                                                                                       #) = readNext cs
-                                                                                                                 in if (\t -> ('0' GHC.Classes.== t) GHC.Classes.|| (('t' GHC.Classes.== t) GHC.Classes.|| (('n' GHC.Classes.== t) GHC.Classes.|| (('v' GHC.Classes.== t) GHC.Classes.|| (('f' GHC.Classes.== t) GHC.Classes.|| (('r' GHC.Classes.== t) GHC.Classes.|| GHC.Types.False)))))) c
-                                                                                                                      then
-                                                                                                                        name
-                                                                                                                          ( let _ = "suspend"
-                                                                                                                             in \farInp farExp v (!inp) ->
-                                                                                                                                  let _ = "resume"
-                                                                                                                                   in join
-                                                                                                                                        farInp
-                                                                                                                                        farExp
-                                                                                                                                        ( let _ = "resume.genCode"
-                                                                                                                                           in v
-                                                                                                                                        )
-                                                                                                                                        inp
-                                                                                                                          )
-                                                                                                                          cs
-                                                                                                                          Data.Map.Internal.Tip
-                                                                                                                      else
-                                                                                                                        let _ = "checkToken.else"
-                                                                                                                         in let failExp =
-                                                                                                                                  Data.Set.Internal.Bin
-                                                                                                                                    6
-                                                                                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                                                        ( case inputToken of
-                                                                                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'n'
-                                                                                                                                        )
-                                                                                                                                    )
-                                                                                                                                    ( Data.Set.Internal.Bin
-                                                                                                                                        2
-                                                                                                                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                                                            ( case inputToken of
-                                                                                                                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '0'
-                                                                                                                                            )
-                                                                                                                                        )
-                                                                                                                                        Data.Set.Internal.Tip
-                                                                                                                                        ( Data.Set.Internal.Bin
-                                                                                                                                            1
-                                                                                                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                                                                ( case inputToken of
-                                                                                                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'f'
-                                                                                                                                                )
-                                                                                                                                            )
-                                                                                                                                            Data.Set.Internal.Tip
-                                                                                                                                            Data.Set.Internal.Tip
-                                                                                                                                        )
-                                                                                                                                    )
-                                                                                                                                    ( Data.Set.Internal.Bin
-                                                                                                                                        3
-                                                                                                                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                                                            ( case inputToken of
-                                                                                                                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 't'
-                                                                                                                                            )
-                                                                                                                                        )
-                                                                                                                                        ( Data.Set.Internal.Bin
-                                                                                                                                            1
-                                                                                                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                                                                ( case inputToken of
-                                                                                                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'r'
-                                                                                                                                                )
-                                                                                                                                            )
-                                                                                                                                            Data.Set.Internal.Tip
-                                                                                                                                            Data.Set.Internal.Tip
-                                                                                                                                        )
-                                                                                                                                        ( Data.Set.Internal.Bin
-                                                                                                                                            1
-                                                                                                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                                                                ( case inputToken of
-                                                                                                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'v'
-                                                                                                                                                )
-                                                                                                                                            )
-                                                                                                                                            Data.Set.Internal.Tip
-                                                                                                                                            Data.Set.Internal.Tip
-                                                                                                                                        )
-                                                                                                                                    )
-                                                                                                                             in let (#
-                                                                                                                                      farInp,
-                                                                                                                                      farExp
-                                                                                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp cs of
-                                                                                                                                        GHC.Types.LT ->
-                                                                                                                                          (#
-                                                                                                                                            cs,
-                                                                                                                                            failExp
-                                                                                                                                          #)
-                                                                                                                                        GHC.Types.EQ ->
-                                                                                                                                          (#
-                                                                                                                                            farInp,
-                                                                                                                                            failExp GHC.Base.<> farExp
-                                                                                                                                          #)
-                                                                                                                                        GHC.Types.GT ->
-                                                                                                                                          (#
-                                                                                                                                            farInp,
-                                                                                                                                            farExp
-                                                                                                                                          #)
-                                                                                                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
-                                                                                                          else
-                                                                                                            let _ = "checkToken.else"
-                                                                                                             in let failExp =
-                                                                                                                      Data.Set.Internal.Bin
-                                                                                                                        1
-                                                                                                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                                            ( case inputToken of
-                                                                                                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '\\'
-                                                                                                                            )
-                                                                                                                        )
-                                                                                                                        Data.Set.Internal.Tip
-                                                                                                                        Data.Set.Internal.Tip
-                                                                                                                 in let (#
-                                                                                                                          farInp,
-                                                                                                                          farExp
-                                                                                                                          #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp failInp of
-                                                                                                                            GHC.Types.LT ->
-                                                                                                                              (#
-                                                                                                                                failInp,
-                                                                                                                                failExp
-                                                                                                                              #)
-                                                                                                                            GHC.Types.EQ ->
-                                                                                                                              (#
-                                                                                                                                farInp,
-                                                                                                                                failExp GHC.Base.<> farExp
-                                                                                                                              #)
-                                                                                                                            GHC.Types.GT ->
-                                                                                                                              (#
-                                                                                                                                farInp,
-                                                                                                                                farExp
-                                                                                                                              #)
-                                                                                                                     in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                                                                                  else
-                                                                                                    let _ = "checkHorizon.else"
-                                                                                                     in let failExp =
-                                                                                                              Data.Set.Internal.Bin
-                                                                                                                1
-                                                                                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                                    ( case inputToken of
-                                                                                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 4
-                                                                                                                    )
-                                                                                                                )
-                                                                                                                Data.Set.Internal.Tip
-                                                                                                                Data.Set.Internal.Tip
-                                                                                                         in let (#
-                                                                                                                  farInp,
-                                                                                                                  farExp
-                                                                                                                  #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp failInp of
-                                                                                                                    GHC.Types.LT ->
-                                                                                                                      (#
-                                                                                                                        failInp,
-                                                                                                                        failExp
-                                                                                                                      #)
-                                                                                                                    GHC.Types.EQ ->
-                                                                                                                      (#
-                                                                                                                        farInp,
-                                                                                                                        failExp GHC.Base.<> farExp
-                                                                                                                      #)
-                                                                                                                    GHC.Types.GT ->
-                                                                                                                      (#
-                                                                                                                        farInp,
-                                                                                                                        farExp
-                                                                                                                      #)
-                                                                                                             in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                                                                      else
-                                                                                        let _ = "choicesBranch.else"
-                                                                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                                                           in let readFail = catchHandler
-                                                                               in let !(#
-                                                                                         c,
-                                                                                         cs
-                                                                                         #) = readNext cs
-                                                                                   in if Parsers.Nandlang.nandStringLetter c
-                                                                                        then
-                                                                                          name
-                                                                                            ( let _ = "suspend"
-                                                                                               in \farInp farExp v (!inp) ->
-                                                                                                    let _ = "resume"
-                                                                                                     in join
-                                                                                                          farInp
-                                                                                                          farExp
-                                                                                                          ( let _ = "resume.genCode"
-                                                                                                             in v
-                                                                                                          )
-                                                                                                          inp
-                                                                                            )
-                                                                                            cs
-                                                                                            Data.Map.Internal.Tip
-                                                                                        else
-                                                                                          let _ = "checkToken.else"
-                                                                                           in catchHandler Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
-                                                                else
-                                                                  let _ = "checkToken.else"
-                                                                   in let failExp =
-                                                                            Data.Set.Internal.Bin
-                                                                              1
-                                                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                  ( case inputToken of
-                                                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '\''
-                                                                                  )
-                                                                              )
-                                                                              Data.Set.Internal.Tip
-                                                                              Data.Set.Internal.Tip
-                                                                       in let (#
-                                                                                farInp,
-                                                                                farExp
-                                                                                #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp failInp of
-                                                                                  GHC.Types.LT ->
-                                                                                    (#
-                                                                                      failInp,
-                                                                                      failExp
-                                                                                    #)
-                                                                                  GHC.Types.EQ ->
-                                                                                    (#
-                                                                                      farInp,
-                                                                                      failExp GHC.Base.<> farExp
-                                                                                    #)
-                                                                                  GHC.Types.GT ->
-                                                                                    (#
-                                                                                      farInp,
-                                                                                      farExp
-                                                                                    #)
-                                                                           in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                                        else
-                                                          let _ = "checkHorizon.else"
-                                                           in let failExp =
-                                                                    Data.Set.Internal.Bin
-                                                                      1
-                                                                      ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                          ( case inputToken of
-                                                                              (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 4
-                                                                          )
-                                                                      )
-                                                                      Data.Set.Internal.Tip
-                                                                      Data.Set.Internal.Tip
-                                                               in let (#
-                                                                        farInp,
-                                                                        farExp
-                                                                        #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp failInp of
-                                                                          GHC.Types.LT ->
-                                                                            (#
-                                                                              failInp,
-                                                                              failExp
-                                                                            #)
-                                                                          GHC.Types.EQ ->
-                                                                            (#
-                                                                              farInp,
-                                                                              failExp GHC.Base.<> farExp
-                                                                            #)
-                                                                          GHC.Types.GT ->
-                                                                            (#
-                                                                              farInp,
-                                                                              farExp
-                                                                            #)
-                                                                   in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                            else
-                                              let _ = "choicesBranch.else"
-                                               in catchHandler Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                 in let join = \farInp farExp v (!inp) ->
-                                          name
-                                            ( let _ = "suspend"
-                                               in \farInp farExp v (!inp) ->
-                                                    let _ = "resume"
-                                                     in join
-                                                          farInp
-                                                          farExp
-                                                          ( let _ = "resume.genCode"
-                                                             in v
-                                                          )
-                                                          inp
-                                            )
-                                            inp
-                                            (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                     in let _ = "catch ExceptionFailure"
-                                         in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                                                  let _ = "catch.ko ExceptionFailure"
-                                                   in if ( \( Data.Text.Internal.Text
-                                                                _
-                                                                i
-                                                                _
-                                                              )
-                                                            ( Data.Text.Internal.Text
-                                                                _
-                                                                j
-                                                                _
-                                                              ) -> i GHC.Classes.== j
-                                                         )
-                                                        inp
-                                                        failInp
-                                                        then
-                                                          let _ = "choicesBranch.then"
-                                                           in let readFail = catchHandler
-                                                               in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 failInp)
-                                                                    then
-                                                                      let !(#
-                                                                             c,
-                                                                             cs
-                                                                             #) = readNext failInp
-                                                                       in if (GHC.Classes.==) '1' c
-                                                                            then
-                                                                              let _ = "resume"
-                                                                               in join
-                                                                                    farInp
-                                                                                    farExp
-                                                                                    ( let _ = "resume.genCode"
-                                                                                       in '1'
-                                                                                    )
-                                                                                    cs
-                                                                            else
-                                                                              let _ = "checkToken.else"
-                                                                               in let failExp =
-                                                                                        Data.Set.Internal.Bin
-                                                                                          1
-                                                                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                              ( case inputToken of
-                                                                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '1'
-                                                                                              )
-                                                                                          )
-                                                                                          Data.Set.Internal.Tip
-                                                                                          Data.Set.Internal.Tip
-                                                                                   in let (#
-                                                                                            farInp,
-                                                                                            farExp
-                                                                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp failInp of
-                                                                                              GHC.Types.LT ->
-                                                                                                (#
-                                                                                                  failInp,
-                                                                                                  failExp
-                                                                                                #)
-                                                                                              GHC.Types.EQ ->
-                                                                                                (#
-                                                                                                  farInp,
-                                                                                                  failExp GHC.Base.<> farExp
-                                                                                                #)
-                                                                                              GHC.Types.GT ->
-                                                                                                (#
-                                                                                                  farInp,
-                                                                                                  farExp
-                                                                                                #)
-                                                                                       in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                                                    else
-                                                                      let _ = "checkHorizon.else"
-                                                                       in let failExp =
-                                                                                Data.Set.Internal.Bin
-                                                                                  1
-                                                                                  ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                      ( case inputToken of
-                                                                                          (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
-                                                                                      )
-                                                                                  )
-                                                                                  Data.Set.Internal.Tip
-                                                                                  Data.Set.Internal.Tip
-                                                                           in let (#
-                                                                                    farInp,
-                                                                                    farExp
-                                                                                    #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp failInp of
-                                                                                      GHC.Types.LT ->
-                                                                                        (#
-                                                                                          failInp,
-                                                                                          failExp
-                                                                                        #)
-                                                                                      GHC.Types.EQ ->
-                                                                                        (#
-                                                                                          farInp,
-                                                                                          failExp GHC.Base.<> farExp
-                                                                                        #)
-                                                                                      GHC.Types.GT ->
-                                                                                        (#
-                                                                                          farInp,
-                                                                                          farExp
-                                                                                        #)
-                                                                               in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                                        else
-                                                          let _ = "choicesBranch.else"
-                                                           in catchHandler Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                             in let readFail = catchHandler
-                                                 in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 inp)
-                                                      then
-                                                        let !(#
-                                                               c,
-                                                               cs
-                                                               #) = readNext inp
-                                                         in if (GHC.Classes.==) '0' c
-                                                              then
-                                                                let _ = "resume"
-                                                                 in join
-                                                                      init
-                                                                      Data.Set.Internal.empty
-                                                                      ( let _ = "resume.genCode"
-                                                                         in '0'
-                                                                      )
-                                                                      cs
-                                                              else
-                                                                let _ = "checkToken.else"
-                                                                 in let failExp =
-                                                                          Data.Set.Internal.Bin
-                                                                            1
-                                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                ( case inputToken of
-                                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '0'
-                                                                                )
-                                                                            )
-                                                                            Data.Set.Internal.Tip
-                                                                            Data.Set.Internal.Tip
-                                                                     in let (#
-                                                                              farInp,
-                                                                              farExp
-                                                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                                                GHC.Types.LT ->
-                                                                                  (#
-                                                                                    inp,
-                                                                                    failExp
-                                                                                  #)
-                                                                                GHC.Types.EQ ->
-                                                                                  (#
-                                                                                    init,
-                                                                                    failExp GHC.Base.<> Data.Set.Internal.empty
-                                                                                  #)
-                                                                                GHC.Types.GT ->
-                                                                                  (#
-                                                                                    init,
-                                                                                    Data.Set.Internal.empty
-                                                                                  #)
-                                                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                                                      else
-                                                        let _ = "checkHorizon.else"
-                                                         in let failExp =
-                                                                  Data.Set.Internal.Bin
-                                                                    1
-                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                        ( case inputToken of
-                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
-                                                                        )
-                                                                    )
-                                                                    Data.Set.Internal.Tip
-                                                                    Data.Set.Internal.Tip
-                                                             in let (#
-                                                                      farInp,
-                                                                      farExp
-                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                                        GHC.Types.LT ->
-                                                                          (#
-                                                                            inp,
-                                                                            failExp
-                                                                          #)
-                                                                        GHC.Types.EQ ->
-                                                                          (#
-                                                                            init,
-                                                                            failExp GHC.Base.<> Data.Set.Internal.empty
-                                                                          #)
-                                                                        GHC.Types.GT ->
-                                                                          (#
-                                                                            init,
-                                                                            Data.Set.Internal.empty
-                                                                          #)
-                                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-              name = \(!ok) (!inp) (!koByLabel) ->
-                let _ = "catch ExceptionFailure"
-                 in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                          let _ = "catch.ko ExceptionFailure"
-                           in if ( \( Data.Text.Internal.Text
-                                        _
-                                        i
-                                        _
-                                      )
-                                    ( Data.Text.Internal.Text
-                                        _
-                                        j
-                                        _
-                                      ) -> i GHC.Classes.== j
-                                 )
-                                inp
-                                failInp
-                                then
-                                  let _ = "choicesBranch.then"
-                                   in let _ = "jump"
-                                       in name ok failInp Data.Map.Internal.Tip
-                                else
-                                  let _ = "choicesBranch.else"
-                                   in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                     in name
-                          ( let _ = "suspend"
-                             in \farInp farExp v (!inp) ->
-                                  name
-                                    ( let _ = "suspend"
-                                       in \farInp farExp v (!inp) ->
-                                            name
-                                              ( let _ = "suspend"
-                                                 in \farInp farExp v (!inp) ->
-                                                      name
-                                                        ( let _ = "suspend"
-                                                           in \farInp farExp v (!inp) ->
-                                                                let _ = "resume"
-                                                                 in ok
-                                                                      farInp
-                                                                      farExp
-                                                                      ( let _ = "resume.genCode"
-                                                                         in GHC.Tuple . ()
-                                                                      )
-                                                                      inp
-                                                        )
-                                                        inp
-                                                        Data.Map.Internal.Tip
-                                              )
-                                              inp
-                                              (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                    )
-                                    inp
-                                    Data.Map.Internal.Tip
-                          )
-                          inp
-                          (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-              name = \(!ok) (!inp) (!koByLabel) ->
-                let _ = "catch ExceptionFailure"
-                 in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                          let _ = "catch.ko ExceptionFailure"
-                           in if ( \( Data.Text.Internal.Text
-                                        _
-                                        i
-                                        _
-                                      )
-                                    ( Data.Text.Internal.Text
-                                        _
-                                        j
-                                        _
-                                      ) -> i GHC.Classes.== j
-                                 )
-                                inp
-                                failInp
-                                then
-                                  let _ = "choicesBranch.then"
-                                   in let _ = "resume"
-                                       in ok
-                                            farInp
-                                            farExp
-                                            ( let _ = "resume.genCode"
-                                               in \x -> x
-                                            )
-                                            failInp
-                                else
-                                  let _ = "choicesBranch.else"
-                                   in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                     in name
-                          ( let _ = "suspend"
-                             in \farInp farExp v (!inp) ->
-                                  name
-                                    ( let _ = "suspend"
-                                       in \farInp farExp v (!inp) ->
-                                            name
-                                              ( let _ = "suspend"
-                                                 in \farInp farExp v (!inp) ->
-                                                      name
-                                                        ( let _ = "suspend"
-                                                           in \farInp farExp v (!inp) ->
-                                                                let _ = "resume"
-                                                                 in ok
-                                                                      farInp
-                                                                      farExp
-                                                                      ( let _ = "resume.genCode"
-                                                                         in \x -> v v (v x)
-                                                                      )
-                                                                      inp
-                                                        )
-                                                        inp
-                                                        (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                              )
-                                              inp
-                                              (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                    )
-                                    inp
-                                    (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                          )
-                          inp
-                          Data.Map.Internal.Tip
-              name = \(!ok) (!inp) (!koByLabel) ->
-                let _ = "catch ExceptionFailure"
-                 in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                          let _ = "catch.ko ExceptionFailure"
-                           in if ( \( Data.Text.Internal.Text
-                                        _
-                                        i
-                                        _
-                                      )
-                                    ( Data.Text.Internal.Text
-                                        _
-                                        j
-                                        _
-                                      ) -> i GHC.Classes.== j
-                                 )
-                                inp
-                                failInp
-                                then
-                                  let _ = "choicesBranch.then"
-                                   in let _ = "resume"
-                                       in ok
-                                            farInp
-                                            farExp
-                                            ( let _ = "resume.genCode"
-                                               in \x -> x
-                                            )
-                                            failInp
-                                else
-                                  let _ = "choicesBranch.else"
-                                   in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                     in name
-                          ( let _ = "suspend"
-                             in \farInp farExp v (!inp) ->
-                                  name
-                                    ( let _ = "suspend"
-                                       in \farInp farExp v (!inp) ->
-                                            name
-                                              ( let _ = "suspend"
-                                                 in \farInp farExp v (!inp) ->
-                                                      name
-                                                        ( let _ = "suspend"
-                                                           in \farInp farExp v (!inp) ->
-                                                                let _ = "resume"
-                                                                 in ok
-                                                                      farInp
-                                                                      farExp
-                                                                      ( let _ = "resume.genCode"
-                                                                         in \x -> v v (v x)
-                                                                      )
-                                                                      inp
-                                                        )
-                                                        inp
-                                                        (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                              )
-                                              inp
-                                              (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                    )
-                                    inp
-                                    (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                          )
-                          inp
-                          Data.Map.Internal.Tip
-              name = \(!ok) (!inp) (!koByLabel) ->
-                let _ = "catch ExceptionFailure"
-                 in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                          let _ = "catch.ko ExceptionFailure"
-                           in if ( \( Data.Text.Internal.Text
-                                        _
-                                        i
-                                        _
-                                      )
-                                    ( Data.Text.Internal.Text
-                                        _
-                                        j
-                                        _
-                                      ) -> i GHC.Classes.== j
-                                 )
-                                inp
-                                failInp
-                                then
-                                  let _ = "choicesBranch.then"
-                                   in let _ = "resume"
-                                       in ok
-                                            farInp
-                                            farExp
-                                            ( let _ = "resume.genCode"
-                                               in \x -> x
-                                            )
-                                            failInp
-                                else
-                                  let _ = "choicesBranch.else"
-                                   in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                     in name
-                          ( let _ = "suspend"
-                             in \farInp farExp v (!inp) ->
-                                  name
-                                    ( let _ = "suspend"
-                                       in \farInp farExp v (!inp) ->
-                                            name
-                                              ( let _ = "suspend"
-                                                 in \farInp farExp v (!inp) ->
-                                                      name
-                                                        ( let _ = "suspend"
-                                                           in \farInp farExp v (!inp) ->
-                                                                let _ = "resume"
-                                                                 in ok
-                                                                      farInp
-                                                                      farExp
-                                                                      ( let _ = "resume.genCode"
-                                                                         in \x -> v v (v x)
-                                                                      )
-                                                                      inp
-                                                        )
-                                                        inp
-                                                        (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                              )
-                                              inp
-                                              (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                    )
-                                    inp
-                                    (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                          )
-                          inp
-                          Data.Map.Internal.Tip
-              name = \(!ok) (!inp) (!koByLabel) ->
-                let _ = "catch ExceptionFailure"
-                 in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                          let _ = "catch.ko ExceptionFailure"
-                           in if ( \( Data.Text.Internal.Text
-                                        _
-                                        i
-                                        _
-                                      )
-                                    ( Data.Text.Internal.Text
-                                        _
-                                        j
-                                        _
-                                      ) -> i GHC.Classes.== j
-                                 )
-                                inp
-                                failInp
-                                then
-                                  let _ = "choicesBranch.then"
-                                   in let _ = "resume"
-                                       in ok
-                                            farInp
-                                            farExp
-                                            ( let _ = "resume.genCode"
-                                               in \x -> x
-                                            )
-                                            failInp
-                                else
-                                  let _ = "choicesBranch.else"
-                                   in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                     in name
-                          ( let _ = "suspend"
-                             in \farInp farExp v (!inp) ->
-                                  name
-                                    ( let _ = "suspend"
-                                       in \farInp farExp v (!inp) ->
-                                            name
-                                              ( let _ = "suspend"
-                                                 in \farInp farExp v (!inp) ->
-                                                      name
-                                                        ( let _ = "suspend"
-                                                           in \farInp farExp v (!inp) ->
-                                                                let _ = "resume"
-                                                                 in ok
-                                                                      farInp
-                                                                      farExp
-                                                                      ( let _ = "resume.genCode"
-                                                                         in \x -> v v (v x)
-                                                                      )
-                                                                      inp
-                                                        )
-                                                        inp
-                                                        (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                              )
-                                              inp
-                                              (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                    )
-                                    inp
-                                    (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                          )
-                          inp
-                          Data.Map.Internal.Tip
-              name = \(!ok) (!inp) (!koByLabel) ->
-                let _ = "catch ExceptionFailure"
-                 in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                          let _ = "catch.ko ExceptionFailure"
-                           in if ( \( Data.Text.Internal.Text
-                                        _
-                                        i
-                                        _
-                                      )
-                                    ( Data.Text.Internal.Text
-                                        _
-                                        j
-                                        _
-                                      ) -> i GHC.Classes.== j
-                                 )
-                                inp
-                                failInp
-                                then
-                                  let _ = "choicesBranch.then"
-                                   in let _ = "resume"
-                                       in ok
-                                            farInp
-                                            farExp
-                                            ( let _ = "resume.genCode"
-                                               in \x -> x
-                                            )
-                                            failInp
-                                else
-                                  let _ = "choicesBranch.else"
-                                   in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                     in name
-                          ( let _ = "suspend"
-                             in \farInp farExp v (!inp) ->
-                                  name
-                                    ( let _ = "suspend"
-                                       in \farInp farExp v (!inp) ->
-                                            let _ = "resume"
-                                             in ok
-                                                  farInp
-                                                  farExp
-                                                  ( let _ = "resume.genCode"
-                                                     in \x -> v x
-                                                  )
-                                                  inp
-                                    )
-                                    inp
-                                    (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                          )
-                          inp
-                          (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-              name = \(!ok) (!inp) (!koByLabel) ->
-                let _ = "catch ExceptionFailure"
-                 in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                          let _ = "catch.ko ExceptionFailure"
-                           in if ( \( Data.Text.Internal.Text
-                                        _
-                                        i
-                                        _
-                                      )
-                                    ( Data.Text.Internal.Text
-                                        _
-                                        j
-                                        _
-                                      ) -> i GHC.Classes.== j
-                                 )
-                                inp
-                                failInp
-                                then
-                                  let _ = "choicesBranch.then"
-                                   in let _ = "resume"
-                                       in ok
-                                            farInp
-                                            farExp
-                                            ( let _ = "resume.genCode"
-                                               in \x -> x
-                                            )
-                                            failInp
-                                else
-                                  let _ = "choicesBranch.else"
-                                   in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                     in name
-                          ( let _ = "suspend"
-                             in \farInp farExp v (!inp) ->
-                                  name
-                                    ( let _ = "suspend"
-                                       in \farInp farExp v (!inp) ->
-                                            let _ = "resume"
-                                             in ok
-                                                  farInp
-                                                  farExp
-                                                  ( let _ = "resume.genCode"
-                                                     in \x -> v x
-                                                  )
-                                                  inp
-                                    )
-                                    inp
-                                    (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                          )
-                          inp
-                          (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-              name = \(!ok) (!inp) (!koByLabel) ->
-                let _ = "catch ExceptionFailure"
-                 in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                          let _ = "catch.ko ExceptionFailure"
-                           in if ( \( Data.Text.Internal.Text
-                                        _
-                                        i
-                                        _
-                                      )
-                                    ( Data.Text.Internal.Text
-                                        _
-                                        j
-                                        _
-                                      ) -> i GHC.Classes.== j
-                                 )
-                                inp
-                                failInp
-                                then
-                                  let _ = "choicesBranch.then"
-                                   in let _ = "resume"
-                                       in ok
-                                            farInp
-                                            farExp
-                                            ( let _ = "resume.genCode"
-                                               in \x -> x
-                                            )
-                                            failInp
-                                else
-                                  let _ = "choicesBranch.else"
-                                   in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                     in let join = \farInp farExp v (!inp) ->
-                              name
-                                ( let _ = "suspend"
-                                   in \farInp farExp v (!inp) ->
-                                        let _ = "resume"
-                                         in ok
-                                              farInp
-                                              farExp
-                                              ( let _ = "resume.genCode"
-                                                 in \x -> v x
-                                              )
-                                              inp
-                                )
-                                inp
-                                (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                         in let _ = "catch ExceptionFailure"
-                             in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                                      let _ = "catch.ko ExceptionFailure"
-                                       in if ( \( Data.Text.Internal.Text
-                                                    _
-                                                    i
-                                                    _
-                                                  )
-                                                ( Data.Text.Internal.Text
-                                                    _
-                                                    j
-                                                    _
-                                                  ) -> i GHC.Classes.== j
-                                             )
-                                            inp
-                                            failInp
-                                            then
-                                              let _ = "choicesBranch.then"
-                                               in name
-                                                    ( let _ = "suspend"
-                                                       in \farInp farExp v (!inp) ->
-                                                            name
-                                                              ( let _ = "suspend"
-                                                                 in \farInp farExp v (!inp) ->
-                                                                      let _ = "resume"
-                                                                       in join
-                                                                            farInp
-                                                                            farExp
-                                                                            ( let _ = "resume.genCode"
-                                                                               in v
-                                                                            )
-                                                                            inp
-                                                              )
-                                                              inp
-                                                              (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                                    )
-                                                    failInp
-                                                    (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                            else
-                                              let _ = "choicesBranch.else"
-                                               in catchHandler Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                 in let join = \farInp farExp v (!inp) ->
-                                          let _ = "resume"
-                                           in join
-                                                farInp
-                                                farExp
-                                                ( let _ = "resume.genCode"
-                                                   in v
-                                                )
-                                                inp
-                                     in let _ = "catch ExceptionFailure"
-                                         in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                                                  let _ = "catch.ko ExceptionFailure"
-                                                   in if ( \( Data.Text.Internal.Text
-                                                                _
-                                                                i
-                                                                _
-                                                              )
-                                                            ( Data.Text.Internal.Text
-                                                                _
-                                                                j
-                                                                _
-                                                              ) -> i GHC.Classes.== j
-                                                         )
-                                                        inp
-                                                        failInp
-                                                        then
-                                                          let _ = "choicesBranch.then"
-                                                           in let _ = "catch ExceptionFailure"
-                                                               in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                                                                        let _ = "catch.ko ExceptionFailure"
-                                                                         in catchHandler Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                                                   in let join = \farInp farExp v (!inp) ->
-                                                                            name
-                                                                              ( let _ = "suspend"
-                                                                                 in \farInp farExp v (!inp) ->
-                                                                                      name
-                                                                                        ( let _ = "suspend"
-                                                                                           in \farInp farExp v (!inp) ->
-                                                                                                name
-                                                                                                  ( let _ = "suspend"
-                                                                                                     in \farInp farExp v (!inp) ->
-                                                                                                          name
-                                                                                                            ( let _ = "suspend"
-                                                                                                               in \farInp farExp v (!inp) ->
-                                                                                                                    let readFail = catchHandler
-                                                                                                                     in if readMore (Symantic.Parser.Machine.Input.shiftRightText 3 inp)
-                                                                                                                          then
-                                                                                                                            let !(#
-                                                                                                                                   c,
-                                                                                                                                   cs
-                                                                                                                                   #) = readNext inp
-                                                                                                                             in if (GHC.Classes.==) '=' c
-                                                                                                                                  then
-                                                                                                                                    name
-                                                                                                                                      ( let _ = "suspend"
-                                                                                                                                         in \farInp farExp v (!inp) ->
-                                                                                                                                              name
-                                                                                                                                                ( let _ = "suspend"
-                                                                                                                                                   in \farInp farExp v (!inp) ->
-                                                                                                                                                        name
-                                                                                                                                                          ( let _ = "suspend"
-                                                                                                                                                             in \farInp farExp v (!inp) ->
-                                                                                                                                                                  name
-                                                                                                                                                                    ( let _ = "suspend"
-                                                                                                                                                                       in \farInp farExp v (!inp) ->
-                                                                                                                                                                            name
-                                                                                                                                                                              ( let _ = "suspend"
-                                                                                                                                                                                 in \farInp farExp v (!inp) ->
-                                                                                                                                                                                      name
-                                                                                                                                                                                        ( let _ = "suspend"
-                                                                                                                                                                                           in \farInp farExp v (!inp) ->
-                                                                                                                                                                                                let _ = "resume"
-                                                                                                                                                                                                 in join
-                                                                                                                                                                                                      farInp
-                                                                                                                                                                                                      farExp
-                                                                                                                                                                                                      ( let _ = "resume.genCode"
-                                                                                                                                                                                                         in v
-                                                                                                                                                                                                      )
-                                                                                                                                                                                                      inp
-                                                                                                                                                                                        )
-                                                                                                                                                                                        inp
-                                                                                                                                                                                        (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                                                                                                                                                              )
-                                                                                                                                                                              inp
-                                                                                                                                                                              Data.Map.Internal.Tip
-                                                                                                                                                                    )
-                                                                                                                                                                    inp
-                                                                                                                                                                    (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                                                                                                                                          )
-                                                                                                                                                          inp
-                                                                                                                                                          Data.Map.Internal.Tip
-                                                                                                                                                )
-                                                                                                                                                inp
-                                                                                                                                                (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                                                                                                                      )
-                                                                                                                                      cs
-                                                                                                                                      (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                                                                                                                  else
-                                                                                                                                    let _ = "checkToken.else"
-                                                                                                                                     in let failExp =
-                                                                                                                                              Data.Set.Internal.Bin
-                                                                                                                                                1
-                                                                                                                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                                                                    ( case inputToken of
-                                                                                                                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '='
-                                                                                                                                                    )
-                                                                                                                                                )
-                                                                                                                                                Data.Set.Internal.Tip
-                                                                                                                                                Data.Set.Internal.Tip
-                                                                                                                                         in let (#
-                                                                                                                                                  farInp,
-                                                                                                                                                  farExp
-                                                                                                                                                  #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
-                                                                                                                                                    GHC.Types.LT ->
-                                                                                                                                                      (#
-                                                                                                                                                        inp,
-                                                                                                                                                        failExp
-                                                                                                                                                      #)
-                                                                                                                                                    GHC.Types.EQ ->
-                                                                                                                                                      (#
-                                                                                                                                                        farInp,
-                                                                                                                                                        failExp GHC.Base.<> farExp
-                                                                                                                                                      #)
-                                                                                                                                                    GHC.Types.GT ->
-                                                                                                                                                      (#
-                                                                                                                                                        farInp,
-                                                                                                                                                        farExp
-                                                                                                                                                      #)
-                                                                                                                                             in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                                                                                                                          else
-                                                                                                                            let _ = "checkHorizon.else"
-                                                                                                                             in let failExp =
-                                                                                                                                      Data.Set.Internal.Bin
-                                                                                                                                        1
-                                                                                                                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                                                            ( case inputToken of
-                                                                                                                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 4
-                                                                                                                                            )
-                                                                                                                                        )
-                                                                                                                                        Data.Set.Internal.Tip
-                                                                                                                                        Data.Set.Internal.Tip
-                                                                                                                                 in let (#
-                                                                                                                                          farInp,
-                                                                                                                                          farExp
-                                                                                                                                          #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
-                                                                                                                                            GHC.Types.LT ->
-                                                                                                                                              (#
-                                                                                                                                                inp,
-                                                                                                                                                failExp
-                                                                                                                                              #)
-                                                                                                                                            GHC.Types.EQ ->
-                                                                                                                                              (#
-                                                                                                                                                farInp,
-                                                                                                                                                failExp GHC.Base.<> farExp
-                                                                                                                                              #)
-                                                                                                                                            GHC.Types.GT ->
-                                                                                                                                              (#
-                                                                                                                                                farInp,
-                                                                                                                                                farExp
-                                                                                                                                              #)
-                                                                                                                                     in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                                                                                                            )
-                                                                                                            inp
-                                                                                                            Data.Map.Internal.Tip
-                                                                                                  )
-                                                                                                  inp
-                                                                                                  (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                                                                        )
-                                                                                        inp
-                                                                                        Data.Map.Internal.Tip
-                                                                              )
-                                                                              inp
-                                                                              (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                                                       in let _ = "catch ExceptionFailure"
-                                                                           in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                                                                                    let _ = "catch.ko ExceptionFailure"
-                                                                                     in if ( \( Data.Text.Internal.Text
-                                                                                                  _
-                                                                                                  i
-                                                                                                  _
-                                                                                                )
-                                                                                              ( Data.Text.Internal.Text
-                                                                                                  _
-                                                                                                  j
-                                                                                                  _
-                                                                                                ) -> i GHC.Classes.== j
-                                                                                           )
-                                                                                          failInp
-                                                                                          failInp
-                                                                                          then
-                                                                                            let _ = "choicesBranch.then"
-                                                                                             in name
-                                                                                                  ( let _ = "suspend"
-                                                                                                     in \farInp farExp v (!inp) ->
-                                                                                                          let _ = "resume"
-                                                                                                           in join
-                                                                                                                farInp
-                                                                                                                farExp
-                                                                                                                ( let _ = "resume.genCode"
-                                                                                                                   in v
-                                                                                                                )
-                                                                                                                inp
-                                                                                                  )
-                                                                                                  failInp
-                                                                                                  Data.Map.Internal.Tip
-                                                                                          else
-                                                                                            let _ = "choicesBranch.else"
-                                                                                             in catchHandler Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                                                               in let _ = "catch ExceptionFailure"
-                                                                                   in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                                                                                            let _ = "catch.ko ExceptionFailure"
-                                                                                             in catchHandler Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                                                                       in let readFail = catchHandler
-                                                                                           in if readMore (Symantic.Parser.Machine.Input.shiftRightText 10 failInp)
-                                                                                                then
-                                                                                                  let !(#
-                                                                                                         c,
-                                                                                                         cs
-                                                                                                         #) = readNext failInp
-                                                                                                   in if (GHC.Classes.==) 'v' c
-                                                                                                        then
-                                                                                                          let readFail = readFail
-                                                                                                           in let !(#
-                                                                                                                     c,
-                                                                                                                     cs
-                                                                                                                     #) = readNext cs
-                                                                                                               in if (GHC.Classes.==) 'a' c
-                                                                                                                    then
-                                                                                                                      let readFail = readFail
-                                                                                                                       in let !(#
-                                                                                                                                 c,
-                                                                                                                                 cs
-                                                                                                                                 #) = readNext cs
-                                                                                                                           in if (GHC.Classes.==) 'r' c
-                                                                                                                                then
-                                                                                                                                  name
-                                                                                                                                    ( let _ = "suspend"
-                                                                                                                                       in \farInp farExp v (!inp) ->
-                                                                                                                                            let _ = "resume"
-                                                                                                                                             in join
-                                                                                                                                                  farInp
-                                                                                                                                                  farExp
-                                                                                                                                                  ( let _ = "resume.genCode"
-                                                                                                                                                     in GHC.Tuple . ()
-                                                                                                                                                  )
-                                                                                                                                                  inp
-                                                                                                                                    )
-                                                                                                                                    cs
-                                                                                                                                    Data.Map.Internal.Tip
-                                                                                                                                else
-                                                                                                                                  let _ = "checkToken.else"
-                                                                                                                                   in let failExp =
-                                                                                                                                            Data.Set.Internal.Bin
-                                                                                                                                              1
-                                                                                                                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                                                                  ( case inputToken of
-                                                                                                                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'r'
-                                                                                                                                                  )
-                                                                                                                                              )
-                                                                                                                                              Data.Set.Internal.Tip
-                                                                                                                                              Data.Set.Internal.Tip
-                                                                                                                                       in let (#
-                                                                                                                                                farInp,
-                                                                                                                                                farExp
-                                                                                                                                                #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp cs of
-                                                                                                                                                  GHC.Types.LT ->
-                                                                                                                                                    (#
-                                                                                                                                                      cs,
-                                                                                                                                                      failExp
-                                                                                                                                                    #)
-                                                                                                                                                  GHC.Types.EQ ->
-                                                                                                                                                    (#
-                                                                                                                                                      farInp,
-                                                                                                                                                      failExp GHC.Base.<> farExp
-                                                                                                                                                    #)
-                                                                                                                                                  GHC.Types.GT ->
-                                                                                                                                                    (#
-                                                                                                                                                      farInp,
-                                                                                                                                                      farExp
-                                                                                                                                                    #)
-                                                                                                                                           in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
-                                                                                                                    else
-                                                                                                                      let _ = "checkToken.else"
-                                                                                                                       in let failExp =
-                                                                                                                                Data.Set.Internal.Bin
-                                                                                                                                  1
-                                                                                                                                  ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                                                      ( case inputToken of
-                                                                                                                                          (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
-                                                                                                                                      )
-                                                                                                                                  )
-                                                                                                                                  Data.Set.Internal.Tip
-                                                                                                                                  Data.Set.Internal.Tip
-                                                                                                                           in let (#
-                                                                                                                                    farInp,
-                                                                                                                                    farExp
-                                                                                                                                    #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp cs of
-                                                                                                                                      GHC.Types.LT ->
-                                                                                                                                        (#
-                                                                                                                                          cs,
-                                                                                                                                          failExp
-                                                                                                                                        #)
-                                                                                                                                      GHC.Types.EQ ->
-                                                                                                                                        (#
-                                                                                                                                          farInp,
-                                                                                                                                          failExp GHC.Base.<> farExp
-                                                                                                                                        #)
-                                                                                                                                      GHC.Types.GT ->
-                                                                                                                                        (#
-                                                                                                                                          farInp,
-                                                                                                                                          farExp
-                                                                                                                                        #)
-                                                                                                                               in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
-                                                                                                        else
-                                                                                                          let _ = "checkToken.else"
-                                                                                                           in let failExp =
-                                                                                                                    Data.Set.Internal.Bin
-                                                                                                                      1
-                                                                                                                      ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                                          ( case inputToken of
-                                                                                                                              (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'v'
-                                                                                                                          )
-                                                                                                                      )
-                                                                                                                      Data.Set.Internal.Tip
-                                                                                                                      Data.Set.Internal.Tip
-                                                                                                               in let (#
-                                                                                                                        farInp,
-                                                                                                                        farExp
-                                                                                                                        #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp failInp of
-                                                                                                                          GHC.Types.LT ->
-                                                                                                                            (#
-                                                                                                                              failInp,
-                                                                                                                              failExp
-                                                                                                                            #)
-                                                                                                                          GHC.Types.EQ ->
-                                                                                                                            (#
-                                                                                                                              farInp,
-                                                                                                                              failExp GHC.Base.<> farExp
-                                                                                                                            #)
-                                                                                                                          GHC.Types.GT ->
-                                                                                                                            (#
-                                                                                                                              farInp,
-                                                                                                                              farExp
-                                                                                                                            #)
-                                                                                                                   in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                                                                                else
-                                                                                                  let _ = "checkHorizon.else"
-                                                                                                   in let failExp =
-                                                                                                            Data.Set.Internal.Bin
-                                                                                                              1
-                                                                                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                                  ( case inputToken of
-                                                                                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 11
-                                                                                                                  )
-                                                                                                              )
-                                                                                                              Data.Set.Internal.Tip
-                                                                                                              Data.Set.Internal.Tip
-                                                                                                       in let (#
-                                                                                                                farInp,
-                                                                                                                farExp
-                                                                                                                #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp failInp of
-                                                                                                                  GHC.Types.LT ->
-                                                                                                                    (#
-                                                                                                                      failInp,
-                                                                                                                      failExp
-                                                                                                                    #)
-                                                                                                                  GHC.Types.EQ ->
-                                                                                                                    (#
-                                                                                                                      farInp,
-                                                                                                                      failExp GHC.Base.<> farExp
-                                                                                                                    #)
-                                                                                                                  GHC.Types.GT ->
-                                                                                                                    (#
-                                                                                                                      farInp,
-                                                                                                                      farExp
-                                                                                                                    #)
-                                                                                                           in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                                        else
-                                                          let _ = "choicesBranch.else"
-                                                           in catchHandler Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                             in let join = \farInp farExp v (!inp) ->
-                                                      let _ = "resume"
-                                                       in join
-                                                            farInp
-                                                            farExp
-                                                            ( let _ = "resume.genCode"
-                                                               in v
-                                                            )
-                                                            inp
-                                                 in let _ = "catch ExceptionFailure"
-                                                     in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                                                              let _ = "catch.ko ExceptionFailure"
-                                                               in if ( \( Data.Text.Internal.Text
-                                                                            _
-                                                                            i
-                                                                            _
-                                                                          )
-                                                                        ( Data.Text.Internal.Text
-                                                                            _
-                                                                            j
-                                                                            _
-                                                                          ) -> i GHC.Classes.== j
-                                                                     )
-                                                                    inp
-                                                                    failInp
-                                                                    then
-                                                                      let _ = "choicesBranch.then"
-                                                                       in let _ = "catch ExceptionFailure"
-                                                                           in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                                                                                    let _ = "catch.ko ExceptionFailure"
-                                                                                     in catchHandler Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                                                               in let readFail = catchHandler
-                                                                                   in if readMore (Symantic.Parser.Machine.Input.shiftRightText 10 failInp)
-                                                                                        then
-                                                                                          let !(#
-                                                                                                 c,
-                                                                                                 cs
-                                                                                                 #) = readNext failInp
-                                                                                           in if (GHC.Classes.==) 'w' c
-                                                                                                then
-                                                                                                  let readFail = readFail
-                                                                                                   in let !(#
-                                                                                                             c,
-                                                                                                             cs
-                                                                                                             #) = readNext cs
-                                                                                                       in if (GHC.Classes.==) 'h' c
-                                                                                                            then
-                                                                                                              let readFail = readFail
-                                                                                                               in let !(#
-                                                                                                                         c,
-                                                                                                                         cs
-                                                                                                                         #) = readNext cs
-                                                                                                                   in if (GHC.Classes.==) 'i' c
-                                                                                                                        then
-                                                                                                                          let readFail = readFail
-                                                                                                                           in let !(#
-                                                                                                                                     c,
-                                                                                                                                     cs
-                                                                                                                                     #) = readNext cs
-                                                                                                                               in if (GHC.Classes.==) 'l' c
-                                                                                                                                    then
-                                                                                                                                      let readFail = readFail
-                                                                                                                                       in let !(#
-                                                                                                                                                 c,
-                                                                                                                                                 cs
-                                                                                                                                                 #) = readNext cs
-                                                                                                                                           in if (GHC.Classes.==) 'e' c
-                                                                                                                                                then
-                                                                                                                                                  name
-                                                                                                                                                    ( let _ = "suspend"
-                                                                                                                                                       in \farInp farExp v (!inp) ->
-                                                                                                                                                            name
-                                                                                                                                                              ( let _ = "suspend"
-                                                                                                                                                                 in \farInp farExp v (!inp) ->
-                                                                                                                                                                      name
-                                                                                                                                                                        ( let _ = "suspend"
-                                                                                                                                                                           in \farInp farExp v (!inp) ->
-                                                                                                                                                                                let _ = "resume"
-                                                                                                                                                                                 in join
-                                                                                                                                                                                      farInp
-                                                                                                                                                                                      farExp
-                                                                                                                                                                                      ( let _ = "resume.genCode"
-                                                                                                                                                                                         in v
-                                                                                                                                                                                      )
-                                                                                                                                                                                      inp
-                                                                                                                                                                        )
-                                                                                                                                                                        inp
-                                                                                                                                                                        (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                                                                                                                                              )
-                                                                                                                                                              inp
-                                                                                                                                                              (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                                                                                                                                    )
-                                                                                                                                                    cs
-                                                                                                                                                    Data.Map.Internal.Tip
-                                                                                                                                                else
-                                                                                                                                                  let _ = "checkToken.else"
-                                                                                                                                                   in let failExp =
-                                                                                                                                                            Data.Set.Internal.Bin
-                                                                                                                                                              1
-                                                                                                                                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                                                                                  ( case inputToken of
-                                                                                                                                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'e'
-                                                                                                                                                                  )
-                                                                                                                                                              )
-                                                                                                                                                              Data.Set.Internal.Tip
-                                                                                                                                                              Data.Set.Internal.Tip
-                                                                                                                                                       in let (#
-                                                                                                                                                                farInp,
-                                                                                                                                                                farExp
-                                                                                                                                                                #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp cs of
-                                                                                                                                                                  GHC.Types.LT ->
-                                                                                                                                                                    (#
-                                                                                                                                                                      cs,
-                                                                                                                                                                      failExp
-                                                                                                                                                                    #)
-                                                                                                                                                                  GHC.Types.EQ ->
-                                                                                                                                                                    (#
-                                                                                                                                                                      farInp,
-                                                                                                                                                                      failExp GHC.Base.<> farExp
-                                                                                                                                                                    #)
-                                                                                                                                                                  GHC.Types.GT ->
-                                                                                                                                                                    (#
-                                                                                                                                                                      farInp,
-                                                                                                                                                                      farExp
-                                                                                                                                                                    #)
-                                                                                                                                                           in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
-                                                                                                                                    else
-                                                                                                                                      let _ = "checkToken.else"
-                                                                                                                                       in let failExp =
-                                                                                                                                                Data.Set.Internal.Bin
-                                                                                                                                                  1
-                                                                                                                                                  ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                                                                      ( case inputToken of
-                                                                                                                                                          (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'l'
-                                                                                                                                                      )
-                                                                                                                                                  )
-                                                                                                                                                  Data.Set.Internal.Tip
-                                                                                                                                                  Data.Set.Internal.Tip
-                                                                                                                                           in let (#
-                                                                                                                                                    farInp,
-                                                                                                                                                    farExp
-                                                                                                                                                    #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp cs of
-                                                                                                                                                      GHC.Types.LT ->
-                                                                                                                                                        (#
-                                                                                                                                                          cs,
-                                                                                                                                                          failExp
-                                                                                                                                                        #)
-                                                                                                                                                      GHC.Types.EQ ->
-                                                                                                                                                        (#
-                                                                                                                                                          farInp,
-                                                                                                                                                          failExp GHC.Base.<> farExp
-                                                                                                                                                        #)
-                                                                                                                                                      GHC.Types.GT ->
-                                                                                                                                                        (#
-                                                                                                                                                          farInp,
-                                                                                                                                                          farExp
-                                                                                                                                                        #)
-                                                                                                                                               in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
-                                                                                                                        else
-                                                                                                                          let _ = "checkToken.else"
-                                                                                                                           in let failExp =
-                                                                                                                                    Data.Set.Internal.Bin
-                                                                                                                                      1
-                                                                                                                                      ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                                                          ( case inputToken of
-                                                                                                                                              (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'i'
-                                                                                                                                          )
-                                                                                                                                      )
-                                                                                                                                      Data.Set.Internal.Tip
-                                                                                                                                      Data.Set.Internal.Tip
-                                                                                                                               in let (#
-                                                                                                                                        farInp,
-                                                                                                                                        farExp
-                                                                                                                                        #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp cs of
-                                                                                                                                          GHC.Types.LT ->
-                                                                                                                                            (#
-                                                                                                                                              cs,
-                                                                                                                                              failExp
-                                                                                                                                            #)
-                                                                                                                                          GHC.Types.EQ ->
-                                                                                                                                            (#
-                                                                                                                                              farInp,
-                                                                                                                                              failExp GHC.Base.<> farExp
-                                                                                                                                            #)
-                                                                                                                                          GHC.Types.GT ->
-                                                                                                                                            (#
-                                                                                                                                              farInp,
-                                                                                                                                              farExp
-                                                                                                                                            #)
-                                                                                                                                   in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
-                                                                                                            else
-                                                                                                              let _ = "checkToken.else"
-                                                                                                               in let failExp =
-                                                                                                                        Data.Set.Internal.Bin
-                                                                                                                          1
-                                                                                                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                                              ( case inputToken of
-                                                                                                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'h'
-                                                                                                                              )
-                                                                                                                          )
-                                                                                                                          Data.Set.Internal.Tip
-                                                                                                                          Data.Set.Internal.Tip
-                                                                                                                   in let (#
-                                                                                                                            farInp,
-                                                                                                                            farExp
-                                                                                                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp cs of
-                                                                                                                              GHC.Types.LT ->
-                                                                                                                                (#
-                                                                                                                                  cs,
-                                                                                                                                  failExp
-                                                                                                                                #)
-                                                                                                                              GHC.Types.EQ ->
-                                                                                                                                (#
-                                                                                                                                  farInp,
-                                                                                                                                  failExp GHC.Base.<> farExp
-                                                                                                                                #)
-                                                                                                                              GHC.Types.GT ->
-                                                                                                                                (#
-                                                                                                                                  farInp,
-                                                                                                                                  farExp
-                                                                                                                                #)
-                                                                                                                       in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
-                                                                                                else
-                                                                                                  let _ = "checkToken.else"
-                                                                                                   in let failExp =
-                                                                                                            Data.Set.Internal.Bin
-                                                                                                              1
-                                                                                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                                  ( case inputToken of
-                                                                                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'w'
-                                                                                                                  )
-                                                                                                              )
-                                                                                                              Data.Set.Internal.Tip
-                                                                                                              Data.Set.Internal.Tip
-                                                                                                       in let (#
-                                                                                                                farInp,
-                                                                                                                farExp
-                                                                                                                #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp failInp of
-                                                                                                                  GHC.Types.LT ->
-                                                                                                                    (#
-                                                                                                                      failInp,
-                                                                                                                      failExp
-                                                                                                                    #)
-                                                                                                                  GHC.Types.EQ ->
-                                                                                                                    (#
-                                                                                                                      farInp,
-                                                                                                                      failExp GHC.Base.<> farExp
-                                                                                                                    #)
-                                                                                                                  GHC.Types.GT ->
-                                                                                                                    (#
-                                                                                                                      farInp,
-                                                                                                                      farExp
-                                                                                                                    #)
-                                                                                                           in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                                                                        else
-                                                                                          let _ = "checkHorizon.else"
-                                                                                           in let failExp =
-                                                                                                    Data.Set.Internal.Bin
-                                                                                                      1
-                                                                                                      ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                          ( case inputToken of
-                                                                                                              (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 11
-                                                                                                          )
-                                                                                                      )
-                                                                                                      Data.Set.Internal.Tip
-                                                                                                      Data.Set.Internal.Tip
-                                                                                               in let (#
-                                                                                                        farInp,
-                                                                                                        farExp
-                                                                                                        #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp failInp of
-                                                                                                          GHC.Types.LT ->
-                                                                                                            (#
-                                                                                                              failInp,
-                                                                                                              failExp
-                                                                                                            #)
-                                                                                                          GHC.Types.EQ ->
-                                                                                                            (#
-                                                                                                              farInp,
-                                                                                                              failExp GHC.Base.<> farExp
-                                                                                                            #)
-                                                                                                          GHC.Types.GT ->
-                                                                                                            (#
-                                                                                                              farInp,
-                                                                                                              farExp
-                                                                                                            #)
-                                                                                                   in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                                                    else
-                                                                      let _ = "choicesBranch.else"
-                                                                       in catchHandler Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                                         in let _ = "catch ExceptionFailure"
-                                                             in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                                                                      let _ = "catch.ko ExceptionFailure"
-                                                                       in catchHandler Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                                                                 in let readFail = catchHandler
-                                                                     in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 inp)
-                                                                          then
-                                                                            let !(#
-                                                                                   c,
-                                                                                   cs
-                                                                                   #) = readNext inp
-                                                                             in if (GHC.Classes.==) 'i' c
-                                                                                  then
-                                                                                    let readFail = readFail
-                                                                                     in let !(#
-                                                                                               c,
-                                                                                               cs
-                                                                                               #) = readNext cs
-                                                                                         in if (GHC.Classes.==) 'f' c
-                                                                                              then
-                                                                                                name
-                                                                                                  ( let _ = "suspend"
-                                                                                                     in \farInp farExp v (!inp) ->
-                                                                                                          let _ = "resume"
-                                                                                                           in join
-                                                                                                                farInp
-                                                                                                                farExp
-                                                                                                                ( let _ = "resume.genCode"
-                                                                                                                   in v
-                                                                                                                )
-                                                                                                                inp
-                                                                                                  )
-                                                                                                  cs
-                                                                                                  Data.Map.Internal.Tip
-                                                                                              else
-                                                                                                let _ = "checkToken.else"
-                                                                                                 in let failExp =
-                                                                                                          Data.Set.Internal.Bin
-                                                                                                            1
-                                                                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                                ( case inputToken of
-                                                                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'f'
-                                                                                                                )
-                                                                                                            )
-                                                                                                            Data.Set.Internal.Tip
-                                                                                                            Data.Set.Internal.Tip
-                                                                                                     in let (#
-                                                                                                              farInp,
-                                                                                                              farExp
-                                                                                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init cs of
-                                                                                                                GHC.Types.LT ->
-                                                                                                                  (#
-                                                                                                                    cs,
-                                                                                                                    failExp
-                                                                                                                  #)
-                                                                                                                GHC.Types.EQ ->
-                                                                                                                  (#
-                                                                                                                    init,
-                                                                                                                    failExp GHC.Base.<> Data.Set.Internal.empty
-                                                                                                                  #)
-                                                                                                                GHC.Types.GT ->
-                                                                                                                  (#
-                                                                                                                    init,
-                                                                                                                    Data.Set.Internal.empty
-                                                                                                                  #)
-                                                                                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
-                                                                                  else
-                                                                                    let _ = "checkToken.else"
-                                                                                     in let failExp =
-                                                                                              Data.Set.Internal.Bin
-                                                                                                1
-                                                                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                    ( case inputToken of
-                                                                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'i'
-                                                                                                    )
-                                                                                                )
-                                                                                                Data.Set.Internal.Tip
-                                                                                                Data.Set.Internal.Tip
-                                                                                         in let (#
-                                                                                                  farInp,
-                                                                                                  farExp
-                                                                                                  #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                                                                    GHC.Types.LT ->
-                                                                                                      (#
-                                                                                                        inp,
-                                                                                                        failExp
-                                                                                                      #)
-                                                                                                    GHC.Types.EQ ->
-                                                                                                      (#
-                                                                                                        init,
-                                                                                                        failExp GHC.Base.<> Data.Set.Internal.empty
-                                                                                                      #)
-                                                                                                    GHC.Types.GT ->
-                                                                                                      (#
-                                                                                                        init,
-                                                                                                        Data.Set.Internal.empty
-                                                                                                      #)
-                                                                                             in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                                                                          else
-                                                                            let _ = "checkHorizon.else"
-                                                                             in let failExp =
-                                                                                      Data.Set.Internal.Bin
-                                                                                        1
-                                                                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                            ( case inputToken of
-                                                                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
-                                                                                            )
-                                                                                        )
-                                                                                        Data.Set.Internal.Tip
-                                                                                        Data.Set.Internal.Tip
-                                                                                 in let (#
-                                                                                          farInp,
-                                                                                          farExp
-                                                                                          #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                                                            GHC.Types.LT ->
-                                                                                              (#
-                                                                                                inp,
-                                                                                                failExp
-                                                                                              #)
-                                                                                            GHC.Types.EQ ->
-                                                                                              (#
-                                                                                                init,
-                                                                                                failExp GHC.Base.<> Data.Set.Internal.empty
-                                                                                              #)
-                                                                                            GHC.Types.GT ->
-                                                                                              (#
-                                                                                                init,
-                                                                                                Data.Set.Internal.empty
-                                                                                              #)
-                                                                                     in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-              name = \(!ok) (!inp) (!koByLabel) ->
-                let _ = "catch ExceptionFailure"
-                 in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                          let _ = "catch.ko ExceptionFailure"
-                           in if ( \( Data.Text.Internal.Text
-                                        _
-                                        i
-                                        _
-                                      )
-                                    ( Data.Text.Internal.Text
-                                        _
-                                        j
-                                        _
-                                      ) -> i GHC.Classes.== j
-                                 )
-                                inp
-                                failInp
-                                then
-                                  let _ = "choicesBranch.then"
-                                   in let _ = "resume"
-                                       in ok
-                                            farInp
-                                            farExp
-                                            ( let _ = "resume.genCode"
-                                               in \x -> x
-                                            )
-                                            failInp
-                                else
-                                  let _ = "choicesBranch.else"
-                                   in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                     in let readFail = catchHandler
-                         in if readMore inp
-                              then
-                                let !(#
-                                       c,
-                                       cs
-                                       #) = readNext inp
-                                 in if Parsers.Nandlang.nandIdentLetter c
-                                      then
-                                        name
-                                          ( let _ = "suspend"
-                                             in \farInp farExp v (!inp) ->
-                                                  let _ = "resume"
-                                                   in ok
-                                                        farInp
-                                                        farExp
-                                                        ( let _ = "resume.genCode"
-                                                           in \x -> v x
-                                                        )
-                                                        inp
-                                          )
-                                          cs
-                                          (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                      else
-                                        let _ = "checkToken.else"
-                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp init Data.Set.Internal.empty
-                              else
-                                let _ = "checkHorizon.else"
-                                 in let failExp =
-                                          Data.Set.Internal.Bin
-                                            1
-                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                ( case inputToken of
-                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
-                                                )
-                                            )
-                                            Data.Set.Internal.Tip
-                                            Data.Set.Internal.Tip
-                                     in let (#
-                                              farInp,
-                                              farExp
-                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                GHC.Types.LT ->
-                                                  (#
-                                                    inp,
-                                                    failExp
-                                                  #)
-                                                GHC.Types.EQ ->
-                                                  (#
-                                                    init,
-                                                    failExp GHC.Base.<> Data.Set.Internal.empty
-                                                  #)
-                                                GHC.Types.GT ->
-                                                  (#
-                                                    init,
-                                                    Data.Set.Internal.empty
-                                                  #)
-                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-              name = \(!ok) (!inp) (!koByLabel) ->
-                let _ = "catch ExceptionFailure"
-                 in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                          let _ = "catch.ko ExceptionFailure"
-                           in if ( \( Data.Text.Internal.Text
-                                        _
-                                        i
-                                        _
-                                      )
-                                    ( Data.Text.Internal.Text
-                                        _
-                                        j
-                                        _
-                                      ) -> i GHC.Classes.== j
-                                 )
-                                inp
-                                failInp
-                                then
-                                  let _ = "choicesBranch.then"
-                                   in let _ = "resume"
-                                       in ok
-                                            farInp
-                                            farExp
-                                            ( let _ = "resume.genCode"
-                                               in \x -> x
-                                            )
-                                            failInp
-                                else
-                                  let _ = "choicesBranch.else"
-                                   in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                     in let readFail = catchHandler
-                         in if readMore (Symantic.Parser.Machine.Input.shiftRightText 3 inp)
-                              then
-                                let !(#
-                                       c,
-                                       cs
-                                       #) = readNext inp
-                                 in if (GHC.Classes.==) '!' c
-                                      then
-                                        name
-                                          ( let _ = "suspend"
-                                             in \farInp farExp v (!inp) ->
-                                                  name
-                                                    ( let _ = "suspend"
-                                                       in \farInp farExp v (!inp) ->
-                                                            name
-                                                              ( let _ = "suspend"
-                                                                 in \farInp farExp v (!inp) ->
-                                                                      let _ = "resume"
-                                                                       in ok
-                                                                            farInp
-                                                                            farExp
-                                                                            ( let _ = "resume.genCode"
-                                                                               in \x -> v x
-                                                                            )
-                                                                            inp
-                                                              )
-                                                              inp
-                                                              (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                                    )
-                                                    inp
-                                                    (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                          )
-                                          cs
-                                          (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                      else
-                                        let _ = "checkToken.else"
-                                         in let failExp =
-                                                  Data.Set.Internal.Bin
-                                                    1
-                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                        ( case inputToken of
-                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '!'
-                                                        )
-                                                    )
-                                                    Data.Set.Internal.Tip
-                                                    Data.Set.Internal.Tip
-                                             in let (#
-                                                      farInp,
-                                                      farExp
-                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                        GHC.Types.LT ->
-                                                          (#
-                                                            inp,
-                                                            failExp
-                                                          #)
-                                                        GHC.Types.EQ ->
-                                                          (#
-                                                            init,
-                                                            failExp GHC.Base.<> Data.Set.Internal.empty
-                                                          #)
-                                                        GHC.Types.GT ->
-                                                          (#
-                                                            init,
-                                                            Data.Set.Internal.empty
-                                                          #)
-                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                              else
-                                let _ = "checkHorizon.else"
-                                 in let failExp =
-                                          Data.Set.Internal.Bin
-                                            1
-                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                ( case inputToken of
-                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 4
-                                                )
-                                            )
-                                            Data.Set.Internal.Tip
-                                            Data.Set.Internal.Tip
-                                     in let (#
-                                              farInp,
-                                              farExp
-                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                GHC.Types.LT ->
-                                                  (#
-                                                    inp,
-                                                    failExp
-                                                  #)
-                                                GHC.Types.EQ ->
-                                                  (#
-                                                    init,
-                                                    failExp GHC.Base.<> Data.Set.Internal.empty
-                                                  #)
-                                                GHC.Types.GT ->
-                                                  (#
-                                                    init,
-                                                    Data.Set.Internal.empty
-                                                  #)
-                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-              name = \(!ok) (!inp) (!koByLabel) ->
-                let _ = "catch ExceptionFailure"
-                 in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                          let _ = "catch.ko ExceptionFailure"
-                           in if ( \( Data.Text.Internal.Text
-                                        _
-                                        i
-                                        _
-                                      )
-                                    ( Data.Text.Internal.Text
-                                        _
-                                        j
-                                        _
-                                      ) -> i GHC.Classes.== j
-                                 )
-                                inp
-                                failInp
-                                then
-                                  let _ = "choicesBranch.then"
-                                   in let _ = "resume"
-                                       in ok
-                                            farInp
-                                            farExp
-                                            ( let _ = "resume.genCode"
-                                               in \x -> x
-                                            )
-                                            failInp
-                                else
-                                  let _ = "choicesBranch.else"
-                                   in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                     in let _ = "catch ExceptionFailure"
-                         in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                                  let _ = "catch.ko ExceptionFailure"
-                                   in catchHandler Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                             in let readFail = catchHandler
-                                 in if readMore (Symantic.Parser.Machine.Input.shiftRightText 17 inp)
-                                      then
-                                        let !(#
-                                               c,
-                                               cs
-                                               #) = readNext inp
-                                         in if (GHC.Classes.==) 'f' c
-                                              then
-                                                let readFail = readFail
-                                                 in let !(#
-                                                           c,
-                                                           cs
-                                                           #) = readNext cs
-                                                     in if (GHC.Classes.==) 'u' c
-                                                          then
-                                                            let readFail = readFail
-                                                             in let !(#
-                                                                       c,
-                                                                       cs
-                                                                       #) = readNext cs
-                                                                 in if (GHC.Classes.==) 'n' c
-                                                                      then
-                                                                        let readFail = readFail
-                                                                         in let !(#
-                                                                                   c,
-                                                                                   cs
-                                                                                   #) = readNext cs
-                                                                             in if (GHC.Classes.==) 'c' c
-                                                                                  then
-                                                                                    let readFail = readFail
-                                                                                     in let !(#
-                                                                                               c,
-                                                                                               cs
-                                                                                               #) = readNext cs
-                                                                                         in if (GHC.Classes.==) 't' c
-                                                                                              then
-                                                                                                let readFail = readFail
-                                                                                                 in let !(#
-                                                                                                           c,
-                                                                                                           cs
-                                                                                                           #) = readNext cs
-                                                                                                     in if (GHC.Classes.==) 'i' c
-                                                                                                          then
-                                                                                                            let readFail = readFail
-                                                                                                             in let !(#
-                                                                                                                       c,
-                                                                                                                       cs
-                                                                                                                       #) = readNext cs
-                                                                                                                 in if (GHC.Classes.==) 'o' c
-                                                                                                                      then
-                                                                                                                        let readFail = readFail
-                                                                                                                         in let !(#
-                                                                                                                                   c,
-                                                                                                                                   cs
-                                                                                                                                   #) = readNext cs
-                                                                                                                             in if (GHC.Classes.==) 'n' c
-                                                                                                                                  then
-                                                                                                                                    name
-                                                                                                                                      ( let _ = "suspend"
-                                                                                                                                         in \farInp farExp v (!inp) ->
-                                                                                                                                              name
-                                                                                                                                                ( let _ = "suspend"
-                                                                                                                                                   in \farInp farExp v (!inp) ->
-                                                                                                                                                        name
-                                                                                                                                                          ( let _ = "suspend"
-                                                                                                                                                             in \farInp farExp v (!inp) ->
-                                                                                                                                                                  name
-                                                                                                                                                                    ( let _ = "suspend"
-                                                                                                                                                                       in \farInp farExp v (!inp) ->
-                                                                                                                                                                            let join = \farInp farExp v (!inp) ->
-                                                                                                                                                                                  name
-                                                                                                                                                                                    ( let _ = "suspend"
-                                                                                                                                                                                       in \farInp farExp v (!inp) ->
-                                                                                                                                                                                            name
-                                                                                                                                                                                              ( let _ = "suspend"
-                                                                                                                                                                                                 in \farInp farExp v (!inp) ->
-                                                                                                                                                                                                      name
-                                                                                                                                                                                                        ( let _ = "suspend"
-                                                                                                                                                                                                           in \farInp farExp v (!inp) ->
-                                                                                                                                                                                                                let _ = "resume"
-                                                                                                                                                                                                                 in ok
-                                                                                                                                                                                                                      farInp
-                                                                                                                                                                                                                      farExp
-                                                                                                                                                                                                                      ( let _ = "resume.genCode"
-                                                                                                                                                                                                                         in \x -> v x
-                                                                                                                                                                                                                      )
-                                                                                                                                                                                                                      inp
-                                                                                                                                                                                                        )
-                                                                                                                                                                                                        inp
-                                                                                                                                                                                                        (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                                                                                                                                                                              )
-                                                                                                                                                                                              inp
-                                                                                                                                                                                              (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                                                                                                                                                                    )
-                                                                                                                                                                                    inp
-                                                                                                                                                                                    (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                                                                                                                                                             in let _ = "catch ExceptionFailure"
-                                                                                                                                                                                 in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                                                                                                                                                                                          let _ = "catch.ko ExceptionFailure"
-                                                                                                                                                                                           in if ( \( Data.Text.Internal.Text
-                                                                                                                                                                                                        _
-                                                                                                                                                                                                        i
-                                                                                                                                                                                                        _
-                                                                                                                                                                                                      )
-                                                                                                                                                                                                    ( Data.Text.Internal.Text
-                                                                                                                                                                                                        _
-                                                                                                                                                                                                        j
-                                                                                                                                                                                                        _
-                                                                                                                                                                                                      ) -> i GHC.Classes.== j
-                                                                                                                                                                                                 )
-                                                                                                                                                                                                inp
-                                                                                                                                                                                                failInp
-                                                                                                                                                                                                then
-                                                                                                                                                                                                  let _ = "choicesBranch.then"
-                                                                                                                                                                                                   in name
-                                                                                                                                                                                                        ( let _ = "suspend"
-                                                                                                                                                                                                           in \farInp farExp v (!inp) ->
-                                                                                                                                                                                                                let _ = "resume"
-                                                                                                                                                                                                                 in join
-                                                                                                                                                                                                                      farInp
-                                                                                                                                                                                                                      farExp
-                                                                                                                                                                                                                      ( let _ = "resume.genCode"
-                                                                                                                                                                                                                         in v
-                                                                                                                                                                                                                      )
-                                                                                                                                                                                                                      inp
-                                                                                                                                                                                                        )
-                                                                                                                                                                                                        failInp
-                                                                                                                                                                                                        Data.Map.Internal.Tip
-                                                                                                                                                                                                else
-                                                                                                                                                                                                  let _ = "choicesBranch.else"
-                                                                                                                                                                                                   in catchHandler Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                                                                                                                                                                     in let readFail = catchHandler
-                                                                                                                                                                                         in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 inp)
-                                                                                                                                                                                              then
-                                                                                                                                                                                                let !(#
-                                                                                                                                                                                                       c,
-                                                                                                                                                                                                       cs
-                                                                                                                                                                                                       #) = readNext inp
-                                                                                                                                                                                                 in if (GHC.Classes.==) ':' c
-                                                                                                                                                                                                      then
-                                                                                                                                                                                                        name
-                                                                                                                                                                                                          ( let _ = "suspend"
-                                                                                                                                                                                                             in \farInp farExp v (!inp) ->
-                                                                                                                                                                                                                  name
-                                                                                                                                                                                                                    ( let _ = "suspend"
-                                                                                                                                                                                                                       in \farInp farExp v (!inp) ->
-                                                                                                                                                                                                                            let _ = "resume"
-                                                                                                                                                                                                                             in join
-                                                                                                                                                                                                                                  farInp
-                                                                                                                                                                                                                                  farExp
-                                                                                                                                                                                                                                  ( let _ = "resume.genCode"
-                                                                                                                                                                                                                                     in GHC.Tuple . ()
-                                                                                                                                                                                                                                  )
-                                                                                                                                                                                                                                  inp
-                                                                                                                                                                                                                    )
-                                                                                                                                                                                                                    inp
-                                                                                                                                                                                                                    (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                                                                                                                                                                                          )
-                                                                                                                                                                                                          cs
-                                                                                                                                                                                                          (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                                                                                                                                                                                      else
-                                                                                                                                                                                                        let _ = "checkToken.else"
-                                                                                                                                                                                                         in let failExp =
-                                                                                                                                                                                                                  Data.Set.Internal.Bin
-                                                                                                                                                                                                                    1
-                                                                                                                                                                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                                                                                                                                        ( case inputToken of
-                                                                                                                                                                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken ':'
-                                                                                                                                                                                                                        )
-                                                                                                                                                                                                                    )
-                                                                                                                                                                                                                    Data.Set.Internal.Tip
-                                                                                                                                                                                                                    Data.Set.Internal.Tip
-                                                                                                                                                                                                             in let (#
-                                                                                                                                                                                                                      farInp,
-                                                                                                                                                                                                                      farExp
-                                                                                                                                                                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
-                                                                                                                                                                                                                        GHC.Types.LT ->
-                                                                                                                                                                                                                          (#
-                                                                                                                                                                                                                            inp,
-                                                                                                                                                                                                                            failExp
-                                                                                                                                                                                                                          #)
-                                                                                                                                                                                                                        GHC.Types.EQ ->
-                                                                                                                                                                                                                          (#
-                                                                                                                                                                                                                            farInp,
-                                                                                                                                                                                                                            failExp GHC.Base.<> farExp
-                                                                                                                                                                                                                          #)
-                                                                                                                                                                                                                        GHC.Types.GT ->
-                                                                                                                                                                                                                          (#
-                                                                                                                                                                                                                            farInp,
-                                                                                                                                                                                                                            farExp
-                                                                                                                                                                                                                          #)
-                                                                                                                                                                                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                                                                                                                                                                                              else
-                                                                                                                                                                                                let _ = "checkHorizon.else"
-                                                                                                                                                                                                 in let failExp =
-                                                                                                                                                                                                          Data.Set.Internal.Bin
-                                                                                                                                                                                                            1
-                                                                                                                                                                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                                                                                                                                ( case inputToken of
-                                                                                                                                                                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
-                                                                                                                                                                                                                )
-                                                                                                                                                                                                            )
-                                                                                                                                                                                                            Data.Set.Internal.Tip
-                                                                                                                                                                                                            Data.Set.Internal.Tip
-                                                                                                                                                                                                     in let (#
-                                                                                                                                                                                                              farInp,
-                                                                                                                                                                                                              farExp
-                                                                                                                                                                                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
-                                                                                                                                                                                                                GHC.Types.LT ->
-                                                                                                                                                                                                                  (#
-                                                                                                                                                                                                                    inp,
-                                                                                                                                                                                                                    failExp
-                                                                                                                                                                                                                  #)
-                                                                                                                                                                                                                GHC.Types.EQ ->
-                                                                                                                                                                                                                  (#
-                                                                                                                                                                                                                    farInp,
-                                                                                                                                                                                                                    failExp GHC.Base.<> farExp
-                                                                                                                                                                                                                  #)
-                                                                                                                                                                                                                GHC.Types.GT ->
-                                                                                                                                                                                                                  (#
-                                                                                                                                                                                                                    farInp,
-                                                                                                                                                                                                                    farExp
-                                                                                                                                                                                                                  #)
-                                                                                                                                                                                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                                                                                                                                                                    )
-                                                                                                                                                                    inp
-                                                                                                                                                                    (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                                                                                                                                          )
-                                                                                                                                                          inp
-                                                                                                                                                          (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                                                                                                                                )
-                                                                                                                                                inp
-                                                                                                                                                (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                                                                                                                      )
-                                                                                                                                      cs
-                                                                                                                                      Data.Map.Internal.Tip
-                                                                                                                                  else
-                                                                                                                                    let _ = "checkToken.else"
-                                                                                                                                     in let failExp =
-                                                                                                                                              Data.Set.Internal.Bin
-                                                                                                                                                1
-                                                                                                                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                                                                    ( case inputToken of
-                                                                                                                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'n'
-                                                                                                                                                    )
-                                                                                                                                                )
-                                                                                                                                                Data.Set.Internal.Tip
-                                                                                                                                                Data.Set.Internal.Tip
-                                                                                                                                         in let (#
-                                                                                                                                                  farInp,
-                                                                                                                                                  farExp
-                                                                                                                                                  #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init cs of
-                                                                                                                                                    GHC.Types.LT ->
-                                                                                                                                                      (#
-                                                                                                                                                        cs,
-                                                                                                                                                        failExp
-                                                                                                                                                      #)
-                                                                                                                                                    GHC.Types.EQ ->
-                                                                                                                                                      (#
-                                                                                                                                                        init,
-                                                                                                                                                        failExp GHC.Base.<> Data.Set.Internal.empty
-                                                                                                                                                      #)
-                                                                                                                                                    GHC.Types.GT ->
-                                                                                                                                                      (#
-                                                                                                                                                        init,
-                                                                                                                                                        Data.Set.Internal.empty
-                                                                                                                                                      #)
-                                                                                                                                             in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
-                                                                                                                      else
-                                                                                                                        let _ = "checkToken.else"
-                                                                                                                         in let failExp =
-                                                                                                                                  Data.Set.Internal.Bin
-                                                                                                                                    1
-                                                                                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                                                        ( case inputToken of
-                                                                                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'o'
-                                                                                                                                        )
-                                                                                                                                    )
-                                                                                                                                    Data.Set.Internal.Tip
-                                                                                                                                    Data.Set.Internal.Tip
-                                                                                                                             in let (#
-                                                                                                                                      farInp,
-                                                                                                                                      farExp
-                                                                                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init cs of
-                                                                                                                                        GHC.Types.LT ->
-                                                                                                                                          (#
-                                                                                                                                            cs,
-                                                                                                                                            failExp
-                                                                                                                                          #)
-                                                                                                                                        GHC.Types.EQ ->
-                                                                                                                                          (#
-                                                                                                                                            init,
-                                                                                                                                            failExp GHC.Base.<> Data.Set.Internal.empty
-                                                                                                                                          #)
-                                                                                                                                        GHC.Types.GT ->
-                                                                                                                                          (#
-                                                                                                                                            init,
-                                                                                                                                            Data.Set.Internal.empty
-                                                                                                                                          #)
-                                                                                                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
-                                                                                                          else
-                                                                                                            let _ = "checkToken.else"
-                                                                                                             in let failExp =
-                                                                                                                      Data.Set.Internal.Bin
-                                                                                                                        1
-                                                                                                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                                            ( case inputToken of
-                                                                                                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'i'
-                                                                                                                            )
-                                                                                                                        )
-                                                                                                                        Data.Set.Internal.Tip
-                                                                                                                        Data.Set.Internal.Tip
-                                                                                                                 in let (#
-                                                                                                                          farInp,
-                                                                                                                          farExp
-                                                                                                                          #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init cs of
-                                                                                                                            GHC.Types.LT ->
-                                                                                                                              (#
-                                                                                                                                cs,
-                                                                                                                                failExp
-                                                                                                                              #)
-                                                                                                                            GHC.Types.EQ ->
-                                                                                                                              (#
-                                                                                                                                init,
-                                                                                                                                failExp GHC.Base.<> Data.Set.Internal.empty
-                                                                                                                              #)
-                                                                                                                            GHC.Types.GT ->
-                                                                                                                              (#
-                                                                                                                                init,
-                                                                                                                                Data.Set.Internal.empty
-                                                                                                                              #)
-                                                                                                                     in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
-                                                                                              else
-                                                                                                let _ = "checkToken.else"
-                                                                                                 in let failExp =
-                                                                                                          Data.Set.Internal.Bin
-                                                                                                            1
-                                                                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                                ( case inputToken of
-                                                                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 't'
-                                                                                                                )
-                                                                                                            )
-                                                                                                            Data.Set.Internal.Tip
-                                                                                                            Data.Set.Internal.Tip
-                                                                                                     in let (#
-                                                                                                              farInp,
-                                                                                                              farExp
-                                                                                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init cs of
-                                                                                                                GHC.Types.LT ->
-                                                                                                                  (#
-                                                                                                                    cs,
-                                                                                                                    failExp
-                                                                                                                  #)
-                                                                                                                GHC.Types.EQ ->
-                                                                                                                  (#
-                                                                                                                    init,
-                                                                                                                    failExp GHC.Base.<> Data.Set.Internal.empty
-                                                                                                                  #)
-                                                                                                                GHC.Types.GT ->
-                                                                                                                  (#
-                                                                                                                    init,
-                                                                                                                    Data.Set.Internal.empty
-                                                                                                                  #)
-                                                                                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
-                                                                                  else
-                                                                                    let _ = "checkToken.else"
-                                                                                     in let failExp =
-                                                                                              Data.Set.Internal.Bin
-                                                                                                1
-                                                                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                    ( case inputToken of
-                                                                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'c'
-                                                                                                    )
-                                                                                                )
-                                                                                                Data.Set.Internal.Tip
-                                                                                                Data.Set.Internal.Tip
-                                                                                         in let (#
-                                                                                                  farInp,
-                                                                                                  farExp
-                                                                                                  #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init cs of
-                                                                                                    GHC.Types.LT ->
-                                                                                                      (#
-                                                                                                        cs,
-                                                                                                        failExp
-                                                                                                      #)
-                                                                                                    GHC.Types.EQ ->
-                                                                                                      (#
-                                                                                                        init,
-                                                                                                        failExp GHC.Base.<> Data.Set.Internal.empty
-                                                                                                      #)
-                                                                                                    GHC.Types.GT ->
-                                                                                                      (#
-                                                                                                        init,
-                                                                                                        Data.Set.Internal.empty
-                                                                                                      #)
-                                                                                             in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
-                                                                      else
-                                                                        let _ = "checkToken.else"
-                                                                         in let failExp =
-                                                                                  Data.Set.Internal.Bin
-                                                                                    1
-                                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                        ( case inputToken of
-                                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'n'
-                                                                                        )
-                                                                                    )
-                                                                                    Data.Set.Internal.Tip
-                                                                                    Data.Set.Internal.Tip
-                                                                             in let (#
-                                                                                      farInp,
-                                                                                      farExp
-                                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init cs of
-                                                                                        GHC.Types.LT ->
-                                                                                          (#
-                                                                                            cs,
-                                                                                            failExp
-                                                                                          #)
-                                                                                        GHC.Types.EQ ->
-                                                                                          (#
-                                                                                            init,
-                                                                                            failExp GHC.Base.<> Data.Set.Internal.empty
-                                                                                          #)
-                                                                                        GHC.Types.GT ->
-                                                                                          (#
-                                                                                            init,
-                                                                                            Data.Set.Internal.empty
-                                                                                          #)
-                                                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
-                                                          else
-                                                            let _ = "checkToken.else"
-                                                             in let failExp =
-                                                                      Data.Set.Internal.Bin
-                                                                        1
-                                                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                            ( case inputToken of
-                                                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'u'
-                                                                            )
-                                                                        )
-                                                                        Data.Set.Internal.Tip
-                                                                        Data.Set.Internal.Tip
-                                                                 in let (#
-                                                                          farInp,
-                                                                          farExp
-                                                                          #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init cs of
-                                                                            GHC.Types.LT ->
-                                                                              (#
-                                                                                cs,
-                                                                                failExp
-                                                                              #)
-                                                                            GHC.Types.EQ ->
-                                                                              (#
-                                                                                init,
-                                                                                failExp GHC.Base.<> Data.Set.Internal.empty
-                                                                              #)
-                                                                            GHC.Types.GT ->
-                                                                              (#
-                                                                                init,
-                                                                                Data.Set.Internal.empty
-                                                                              #)
-                                                                     in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
-                                              else
-                                                let _ = "checkToken.else"
-                                                 in let failExp =
-                                                          Data.Set.Internal.Bin
-                                                            1
-                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                ( case inputToken of
-                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'f'
-                                                                )
-                                                            )
-                                                            Data.Set.Internal.Tip
-                                                            Data.Set.Internal.Tip
-                                                     in let (#
-                                                              farInp,
-                                                              farExp
-                                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                                GHC.Types.LT ->
-                                                                  (#
-                                                                    inp,
-                                                                    failExp
-                                                                  #)
-                                                                GHC.Types.EQ ->
-                                                                  (#
-                                                                    init,
-                                                                    failExp GHC.Base.<> Data.Set.Internal.empty
-                                                                  #)
-                                                                GHC.Types.GT ->
-                                                                  (#
-                                                                    init,
-                                                                    Data.Set.Internal.empty
-                                                                  #)
-                                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                                      else
-                                        let _ = "checkHorizon.else"
-                                         in let failExp =
-                                                  Data.Set.Internal.Bin
-                                                    1
-                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                        ( case inputToken of
-                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 18
-                                                        )
-                                                    )
-                                                    Data.Set.Internal.Tip
-                                                    Data.Set.Internal.Tip
-                                             in let (#
-                                                      farInp,
-                                                      farExp
-                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                        GHC.Types.LT ->
-                                                          (#
-                                                            inp,
-                                                            failExp
-                                                          #)
-                                                        GHC.Types.EQ ->
-                                                          (#
-                                                            init,
-                                                            failExp GHC.Base.<> Data.Set.Internal.empty
-                                                          #)
-                                                        GHC.Types.GT ->
-                                                          (#
-                                                            init,
-                                                            Data.Set.Internal.empty
-                                                          #)
-                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-              name = \(!ok) (!inp) (!koByLabel) ->
-                let _ = "resume"
-                 in ok
-                      init
-                      Data.Set.Internal.empty
-                      ( let _ = "resume.genCode"
-                         in GHC.Tuple . ()
-                      )
-                      inp
-              name = \(!ok) (!inp) (!koByLabel) ->
-                let _ = "resume"
-                 in ok
-                      init
-                      Data.Set.Internal.empty
-                      ( let _ = "resume.genCode"
-                         in GHC.Tuple . ()
-                      )
-                      inp
-              name = \(!ok) (!inp) (!koByLabel) ->
-                let _ = "resume"
-                 in ok
-                      init
-                      Data.Set.Internal.empty
-                      ( let _ = "resume.genCode"
-                         in \x -> \x -> x
-                      )
-                      inp
-           in name
-                ( let _ = "suspend"
-                   in \farInp farExp v (!inp) ->
-                        name
-                          ( let _ = "suspend"
-                             in \farInp farExp v (!inp) ->
-                                  name
-                                    ( let _ = "suspend"
-                                       in \farInp farExp v (!inp) ->
-                                            name
-                                              ( let _ = "suspend"
-                                                 in \farInp farExp v (!inp) ->
-                                                      let join = \farInp farExp v (!inp) ->
-                                                            let _ = "resume"
-                                                             in finalRet
-                                                                  farInp
-                                                                  farExp
-                                                                  ( let _ = "resume.genCode"
-                                                                     in GHC.Show.show v
-                                                                  )
-                                                                  inp
-                                                       in let _ = "catch ExceptionFailure"
-                                                           in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                                                                    let _ = "catch.ko ExceptionFailure"
-                                                                     in if ( \( Data.Text.Internal.Text
-                                                                                  _
-                                                                                  i
-                                                                                  _
-                                                                                )
-                                                                              ( Data.Text.Internal.Text
-                                                                                  _
-                                                                                  j
-                                                                                  _
-                                                                                ) -> i GHC.Classes.== j
-                                                                           )
-                                                                          inp
-                                                                          failInp
-                                                                          then
-                                                                            let _ = "choicesBranch.then"
-                                                                             in let failExp = Data.Set.Internal.Bin 1 (Symantic.Parser.Grammar.Combinators.SomeFailure Symantic.Parser.Grammar.Combinators.FailureEnd) Data.Set.Internal.Tip Data.Set.Internal.Tip
-                                                                                 in let (#
-                                                                                          farInp,
-                                                                                          farExp
-                                                                                          #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp failInp of
-                                                                                            GHC.Types.LT ->
-                                                                                              (#
-                                                                                                failInp,
-                                                                                                failExp
-                                                                                              #)
-                                                                                            GHC.Types.EQ ->
-                                                                                              (#
-                                                                                                farInp,
-                                                                                                failExp GHC.Base.<> farExp
-                                                                                              #)
-                                                                                            GHC.Types.GT ->
-                                                                                              (#
-                                                                                                farInp,
-                                                                                                farExp
-                                                                                              #)
-                                                                                     in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                                                          else
-                                                                            let _ = "choicesBranch.else"
-                                                                             in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                                               in let _ = "catch ExceptionFailure"
-                                                                   in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                                                                            let _ = "catch.ko ExceptionFailure"
-                                                                             in let _ = "resume"
-                                                                                 in join
-                                                                                      farInp
-                                                                                      farExp
-                                                                                      ( let _ = "resume.genCode"
-                                                                                         in GHC.Tuple . ()
-                                                                                      )
-                                                                                      inp
-                                                                       in let readFail = catchHandler
-                                                                           in if readMore inp
-                                                                                then
-                                                                                  let !(#
-                                                                                         c,
-                                                                                         cs
-                                                                                         #) = readNext inp
-                                                                                   in catchHandler Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                                                                                else
-                                                                                  let _ = "checkHorizon.else"
-                                                                                   in let failExp =
-                                                                                            Data.Set.Internal.Bin
-                                                                                              1
-                                                                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                                  ( case inputToken of
-                                                                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
-                                                                                                  )
-                                                                                              )
-                                                                                              Data.Set.Internal.Tip
-                                                                                              Data.Set.Internal.Tip
-                                                                                       in let (#
-                                                                                                farInp,
-                                                                                                farExp
-                                                                                                #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
-                                                                                                  GHC.Types.LT ->
-                                                                                                    (#
-                                                                                                      inp,
-                                                                                                      failExp
-                                                                                                    #)
-                                                                                                  GHC.Types.EQ ->
-                                                                                                    (#
-                                                                                                      farInp,
-                                                                                                      failExp GHC.Base.<> farExp
-                                                                                                    #)
-                                                                                                  GHC.Types.GT ->
-                                                                                                    (#
-                                                                                                      farInp,
-                                                                                                      farExp
-                                                                                                    #)
-                                                                                           in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                                              )
-                                              inp
-                                              Data.Map.Internal.Tip
-                                    )
-                                    inp
-                                    Data.Map.Internal.Tip
-                          )
-                          inp
-                          Data.Map.Internal.Tip
-                )
-                init
-                Data.Map.Internal.Tip
diff --git a/test/Golden/Splice/G15.expected.txt b/test/Golden/Splice/G15.expected.txt
deleted file mode 100644
--- a/test/Golden/Splice/G15.expected.txt
+++ /dev/null
@@ -1,316 +0,0 @@
-\(input :: inp) ->
-  let !(#
-         init,
-         readMore,
-         readNext
-         #) =
-          let _ = "cursorOf"
-           in let next
-                    ( t@( Data.Text.Internal.Text
-                            arr
-                            off
-                            unconsumed
-                          )
-                      ) =
-                      let !( Data.Text.Unsafe.Iter
-                               c
-                               d
-                             ) = Data.Text.Unsafe.iter t 0
-                       in (#
-                            c,
-                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
-                          #)
-                  more
-                    ( Data.Text.Internal.Text
-                        _
-                        _
-                        unconsumed
-                      ) = unconsumed GHC.Classes.> 0
-               in (# input, more, next #)
-      finalRet = \_farInp _farExp v _inp -> Data.Either.Right v
-      finalRaise ::
-        forall b.
-        Symantic.Parser.Machine.Generate.Catcher
-          inp
-          b = \(!exn) _failInp (!farInp) (!farExp) ->
-          Data.Either.Left
-            Symantic.Parser.Machine.Generate.ParsingError
-              { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
-                Symantic.Parser.Machine.Generate.parsingErrorException = exn,
-                Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
-                  if readMore farInp
-                    then
-                      GHC.Maybe.Just
-                        ( let (#
-                                c,
-                                _
-                                #) = readNext farInp
-                           in c
-                        )
-                    else GHC.Maybe.Nothing,
-                Symantic.Parser.Machine.Generate.parsingErrorExpecting = farExp
-              }
-   in let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
-       in let
-           in let join = \farInp farExp v (!inp) ->
-                    let readFail = finalRaise
-                     in if readMore inp
-                          then
-                            let !(#
-                                   c,
-                                   cs
-                                   #) = readNext inp
-                             in if (GHC.Classes.==) 'c' c
-                                  then
-                                    let _ = "resume"
-                                     in finalRet
-                                          farInp
-                                          farExp
-                                          ( let _ = "resume.genCode"
-                                             in GHC.Show.show v
-                                          )
-                                          cs
-                                  else
-                                    let _ = "checkToken.else"
-                                     in let failExp =
-                                              Data.Set.Internal.Bin
-                                                1
-                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                    ( case inputToken of
-                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'c'
-                                                    )
-                                                )
-                                                Data.Set.Internal.Tip
-                                                Data.Set.Internal.Tip
-                                         in let (#
-                                                  farInp,
-                                                  farExp
-                                                  #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
-                                                    GHC.Types.LT ->
-                                                      (#
-                                                        inp,
-                                                        failExp
-                                                      #)
-                                                    GHC.Types.EQ ->
-                                                      (#
-                                                        farInp,
-                                                        failExp GHC.Base.<> farExp
-                                                      #)
-                                                    GHC.Types.GT ->
-                                                      (#
-                                                        farInp,
-                                                        farExp
-                                                      #)
-                                             in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                          else
-                            let _ = "checkHorizon.else"
-                             in let failExp =
-                                      Data.Set.Internal.Bin
-                                        1
-                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                            ( case inputToken of
-                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
-                                            )
-                                        )
-                                        Data.Set.Internal.Tip
-                                        Data.Set.Internal.Tip
-                                 in let (#
-                                          farInp,
-                                          farExp
-                                          #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
-                                            GHC.Types.LT ->
-                                              (#
-                                                inp,
-                                                failExp
-                                              #)
-                                            GHC.Types.EQ ->
-                                              (#
-                                                farInp,
-                                                failExp GHC.Base.<> farExp
-                                              #)
-                                            GHC.Types.GT ->
-                                              (#
-                                                farInp,
-                                                farExp
-                                              #)
-                                     in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-               in let _ = "catch ExceptionFailure"
-                   in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                            let _ = "catch.ko ExceptionFailure"
-                             in if ( \( Data.Text.Internal.Text
-                                          _
-                                          i
-                                          _
-                                        )
-                                      ( Data.Text.Internal.Text
-                                          _
-                                          j
-                                          _
-                                        ) -> i GHC.Classes.== j
-                                   )
-                                  init
-                                  failInp
-                                  then
-                                    let _ = "choicesBranch.then"
-                                     in let readFail = finalRaise
-                                         in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 failInp)
-                                              then
-                                                let !(#
-                                                       c,
-                                                       cs
-                                                       #) = readNext failInp
-                                                 in if (GHC.Classes.==) 'b' c
-                                                      then
-                                                        let _ = "resume"
-                                                         in join
-                                                              farInp
-                                                              farExp
-                                                              ( let _ = "resume.genCode"
-                                                                 in 'b'
-                                                              )
-                                                              cs
-                                                      else
-                                                        let _ = "checkToken.else"
-                                                         in let failExp =
-                                                                  Data.Set.Internal.Bin
-                                                                    1
-                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                        ( case inputToken of
-                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'b'
-                                                                        )
-                                                                    )
-                                                                    Data.Set.Internal.Tip
-                                                                    Data.Set.Internal.Tip
-                                                             in let (#
-                                                                      farInp,
-                                                                      farExp
-                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp failInp of
-                                                                        GHC.Types.LT ->
-                                                                          (#
-                                                                            failInp,
-                                                                            failExp
-                                                                          #)
-                                                                        GHC.Types.EQ ->
-                                                                          (#
-                                                                            farInp,
-                                                                            failExp GHC.Base.<> farExp
-                                                                          #)
-                                                                        GHC.Types.GT ->
-                                                                          (#
-                                                                            farInp,
-                                                                            farExp
-                                                                          #)
-                                                                 in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                              else
-                                                let _ = "checkHorizon.else"
-                                                 in let failExp =
-                                                          Data.Set.Internal.Bin
-                                                            1
-                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                ( case inputToken of
-                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
-                                                                )
-                                                            )
-                                                            Data.Set.Internal.Tip
-                                                            Data.Set.Internal.Tip
-                                                     in let (#
-                                                              farInp,
-                                                              farExp
-                                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp failInp of
-                                                                GHC.Types.LT ->
-                                                                  (#
-                                                                    failInp,
-                                                                    failExp
-                                                                  #)
-                                                                GHC.Types.EQ ->
-                                                                  (#
-                                                                    farInp,
-                                                                    failExp GHC.Base.<> farExp
-                                                                  #)
-                                                                GHC.Types.GT ->
-                                                                  (#
-                                                                    farInp,
-                                                                    farExp
-                                                                  #)
-                                                         in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                  else
-                                    let _ = "choicesBranch.else"
-                                     in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                       in let readFail = catchHandler
-                           in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 init)
-                                then
-                                  let !(# c, cs #) = readNext init
-                                   in if (GHC.Classes.==) 'a' c
-                                        then
-                                          let _ = "resume"
-                                           in join
-                                                init
-                                                Data.Set.Internal.empty
-                                                ( let _ = "resume.genCode"
-                                                   in 'a'
-                                                )
-                                                cs
-                                        else
-                                          let _ = "checkToken.else"
-                                           in let failExp =
-                                                    Data.Set.Internal.Bin
-                                                      1
-                                                      ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                          ( case inputToken of
-                                                              (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
-                                                          )
-                                                      )
-                                                      Data.Set.Internal.Tip
-                                                      Data.Set.Internal.Tip
-                                               in let (#
-                                                        farInp,
-                                                        farExp
-                                                        #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init init of
-                                                          GHC.Types.LT ->
-                                                            (#
-                                                              init,
-                                                              failExp
-                                                            #)
-                                                          GHC.Types.EQ ->
-                                                            (#
-                                                              init,
-                                                              failExp GHC.Base.<> Data.Set.Internal.empty
-                                                            #)
-                                                          GHC.Types.GT ->
-                                                            (#
-                                                              init,
-                                                              Data.Set.Internal.empty
-                                                            #)
-                                                   in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure init farInp farExp
-                                else
-                                  let _ = "checkHorizon.else"
-                                   in let failExp =
-                                            Data.Set.Internal.Bin
-                                              1
-                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                  ( case inputToken of
-                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
-                                                  )
-                                              )
-                                              Data.Set.Internal.Tip
-                                              Data.Set.Internal.Tip
-                                       in let (#
-                                                farInp,
-                                                farExp
-                                                #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init init of
-                                                  GHC.Types.LT ->
-                                                    (#
-                                                      init,
-                                                      failExp
-                                                    #)
-                                                  GHC.Types.EQ ->
-                                                    (#
-                                                      init,
-                                                      failExp GHC.Base.<> Data.Set.Internal.empty
-                                                    #)
-                                                  GHC.Types.GT ->
-                                                    (#
-                                                      init,
-                                                      Data.Set.Internal.empty
-                                                    #)
-                                           in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure init farInp farExp
diff --git a/test/Golden/Splice/G16.expected.txt b/test/Golden/Splice/G16.expected.txt
deleted file mode 100644
--- a/test/Golden/Splice/G16.expected.txt
+++ /dev/null
@@ -1,427 +0,0 @@
-\(input :: inp) ->
-  let !(#
-         init,
-         readMore,
-         readNext
-         #) =
-          let _ = "cursorOf"
-           in let next
-                    ( t@( Data.Text.Internal.Text
-                            arr
-                            off
-                            unconsumed
-                          )
-                      ) =
-                      let !( Data.Text.Unsafe.Iter
-                               c
-                               d
-                             ) = Data.Text.Unsafe.iter t 0
-                       in (#
-                            c,
-                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
-                          #)
-                  more
-                    ( Data.Text.Internal.Text
-                        _
-                        _
-                        unconsumed
-                      ) = unconsumed GHC.Classes.> 0
-               in (# input, more, next #)
-      finalRet = \_farInp _farExp v _inp -> Data.Either.Right v
-      finalRaise ::
-        forall b.
-        Symantic.Parser.Machine.Generate.Catcher
-          inp
-          b = \(!exn) _failInp (!farInp) (!farExp) ->
-          Data.Either.Left
-            Symantic.Parser.Machine.Generate.ParsingError
-              { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
-                Symantic.Parser.Machine.Generate.parsingErrorException = exn,
-                Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
-                  if readMore farInp
-                    then
-                      GHC.Maybe.Just
-                        ( let (#
-                                c,
-                                _
-                                #) = readNext farInp
-                           in c
-                        )
-                    else GHC.Maybe.Nothing,
-                Symantic.Parser.Machine.Generate.parsingErrorExpecting = farExp
-              }
-   in let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
-       in let
-           in let join = \farInp farExp v (!inp) ->
-                    let readFail = finalRaise
-                     in if readMore inp
-                          then
-                            let !(#
-                                   c,
-                                   cs
-                                   #) = readNext inp
-                             in if (GHC.Classes.==) 'd' c
-                                  then
-                                    let _ = "resume"
-                                     in finalRet
-                                          farInp
-                                          farExp
-                                          ( let _ = "resume.genCode"
-                                             in GHC.Show.show v
-                                          )
-                                          cs
-                                  else
-                                    let _ = "checkToken.else"
-                                     in let failExp =
-                                              Data.Set.Internal.Bin
-                                                1
-                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                    ( case inputToken of
-                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'd'
-                                                    )
-                                                )
-                                                Data.Set.Internal.Tip
-                                                Data.Set.Internal.Tip
-                                         in let (#
-                                                  farInp,
-                                                  farExp
-                                                  #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
-                                                    GHC.Types.LT ->
-                                                      (#
-                                                        inp,
-                                                        failExp
-                                                      #)
-                                                    GHC.Types.EQ ->
-                                                      (#
-                                                        farInp,
-                                                        failExp GHC.Base.<> farExp
-                                                      #)
-                                                    GHC.Types.GT ->
-                                                      (#
-                                                        farInp,
-                                                        farExp
-                                                      #)
-                                             in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                          else
-                            let _ = "checkHorizon.else"
-                             in let failExp =
-                                      Data.Set.Internal.Bin
-                                        1
-                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                            ( case inputToken of
-                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
-                                            )
-                                        )
-                                        Data.Set.Internal.Tip
-                                        Data.Set.Internal.Tip
-                                 in let (#
-                                          farInp,
-                                          farExp
-                                          #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
-                                            GHC.Types.LT ->
-                                              (#
-                                                inp,
-                                                failExp
-                                              #)
-                                            GHC.Types.EQ ->
-                                              (#
-                                                farInp,
-                                                failExp GHC.Base.<> farExp
-                                              #)
-                                            GHC.Types.GT ->
-                                              (#
-                                                farInp,
-                                                farExp
-                                              #)
-                                     in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-               in let _ = "catch ExceptionFailure"
-                   in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                            let _ = "catch.ko ExceptionFailure"
-                             in if ( \( Data.Text.Internal.Text
-                                          _
-                                          i
-                                          _
-                                        )
-                                      ( Data.Text.Internal.Text
-                                          _
-                                          j
-                                          _
-                                        ) -> i GHC.Classes.== j
-                                   )
-                                  init
-                                  failInp
-                                  then
-                                    let _ = "choicesBranch.then"
-                                     in let readFail = finalRaise
-                                         in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 failInp)
-                                              then
-                                                let !(#
-                                                       c,
-                                                       cs
-                                                       #) = readNext failInp
-                                                 in if (GHC.Classes.==) 'c' c
-                                                      then
-                                                        let _ = "resume"
-                                                         in join
-                                                              farInp
-                                                              farExp
-                                                              ( let _ = "resume.genCode"
-                                                                 in 'c'
-                                                              )
-                                                              cs
-                                                      else
-                                                        let _ = "checkToken.else"
-                                                         in let failExp =
-                                                                  Data.Set.Internal.Bin
-                                                                    1
-                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                        ( case inputToken of
-                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'c'
-                                                                        )
-                                                                    )
-                                                                    Data.Set.Internal.Tip
-                                                                    Data.Set.Internal.Tip
-                                                             in let (#
-                                                                      farInp,
-                                                                      farExp
-                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp failInp of
-                                                                        GHC.Types.LT ->
-                                                                          (#
-                                                                            failInp,
-                                                                            failExp
-                                                                          #)
-                                                                        GHC.Types.EQ ->
-                                                                          (#
-                                                                            farInp,
-                                                                            failExp GHC.Base.<> farExp
-                                                                          #)
-                                                                        GHC.Types.GT ->
-                                                                          (#
-                                                                            farInp,
-                                                                            farExp
-                                                                          #)
-                                                                 in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                              else
-                                                let _ = "checkHorizon.else"
-                                                 in let failExp =
-                                                          Data.Set.Internal.Bin
-                                                            1
-                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                ( case inputToken of
-                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
-                                                                )
-                                                            )
-                                                            Data.Set.Internal.Tip
-                                                            Data.Set.Internal.Tip
-                                                     in let (#
-                                                              farInp,
-                                                              farExp
-                                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp failInp of
-                                                                GHC.Types.LT ->
-                                                                  (#
-                                                                    failInp,
-                                                                    failExp
-                                                                  #)
-                                                                GHC.Types.EQ ->
-                                                                  (#
-                                                                    farInp,
-                                                                    failExp GHC.Base.<> farExp
-                                                                  #)
-                                                                GHC.Types.GT ->
-                                                                  (#
-                                                                    farInp,
-                                                                    farExp
-                                                                  #)
-                                                         in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                  else
-                                    let _ = "choicesBranch.else"
-                                     in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                       in let join = \farInp farExp v (!inp) ->
-                                let _ = "resume"
-                                 in join
-                                      farInp
-                                      farExp
-                                      ( let _ = "resume.genCode"
-                                         in v
-                                      )
-                                      inp
-                           in let _ = "catch ExceptionFailure"
-                               in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                                        let _ = "catch.ko ExceptionFailure"
-                                         in if ( \( Data.Text.Internal.Text
-                                                      _
-                                                      i
-                                                      _
-                                                    )
-                                                  ( Data.Text.Internal.Text
-                                                      _
-                                                      j
-                                                      _
-                                                    ) -> i GHC.Classes.== j
-                                               )
-                                              init
-                                              failInp
-                                              then
-                                                let _ = "choicesBranch.then"
-                                                 in let readFail = catchHandler
-                                                     in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 failInp)
-                                                          then
-                                                            let !(#
-                                                                   c,
-                                                                   cs
-                                                                   #) = readNext failInp
-                                                             in if (GHC.Classes.==) 'b' c
-                                                                  then
-                                                                    let _ = "resume"
-                                                                     in join
-                                                                          farInp
-                                                                          farExp
-                                                                          ( let _ = "resume.genCode"
-                                                                             in 'b'
-                                                                          )
-                                                                          cs
-                                                                  else
-                                                                    let _ = "checkToken.else"
-                                                                     in let failExp =
-                                                                              Data.Set.Internal.Bin
-                                                                                1
-                                                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                    ( case inputToken of
-                                                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'b'
-                                                                                    )
-                                                                                )
-                                                                                Data.Set.Internal.Tip
-                                                                                Data.Set.Internal.Tip
-                                                                         in let (#
-                                                                                  farInp,
-                                                                                  farExp
-                                                                                  #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp failInp of
-                                                                                    GHC.Types.LT ->
-                                                                                      (#
-                                                                                        failInp,
-                                                                                        failExp
-                                                                                      #)
-                                                                                    GHC.Types.EQ ->
-                                                                                      (#
-                                                                                        farInp,
-                                                                                        failExp GHC.Base.<> farExp
-                                                                                      #)
-                                                                                    GHC.Types.GT ->
-                                                                                      (#
-                                                                                        farInp,
-                                                                                        farExp
-                                                                                      #)
-                                                                             in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                                          else
-                                                            let _ = "checkHorizon.else"
-                                                             in let failExp =
-                                                                      Data.Set.Internal.Bin
-                                                                        1
-                                                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                            ( case inputToken of
-                                                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
-                                                                            )
-                                                                        )
-                                                                        Data.Set.Internal.Tip
-                                                                        Data.Set.Internal.Tip
-                                                                 in let (#
-                                                                          farInp,
-                                                                          farExp
-                                                                          #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp failInp of
-                                                                            GHC.Types.LT ->
-                                                                              (#
-                                                                                failInp,
-                                                                                failExp
-                                                                              #)
-                                                                            GHC.Types.EQ ->
-                                                                              (#
-                                                                                farInp,
-                                                                                failExp GHC.Base.<> farExp
-                                                                              #)
-                                                                            GHC.Types.GT ->
-                                                                              (#
-                                                                                farInp,
-                                                                                farExp
-                                                                              #)
-                                                                     in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                              else
-                                                let _ = "choicesBranch.else"
-                                                 in catchHandler Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                   in let readFail = catchHandler
-                                       in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 init)
-                                            then
-                                              let !(# c, cs #) = readNext init
-                                               in if (GHC.Classes.==) 'a' c
-                                                    then
-                                                      let _ = "resume"
-                                                       in join
-                                                            init
-                                                            Data.Set.Internal.empty
-                                                            ( let _ = "resume.genCode"
-                                                               in 'a'
-                                                            )
-                                                            cs
-                                                    else
-                                                      let _ = "checkToken.else"
-                                                       in let failExp =
-                                                                Data.Set.Internal.Bin
-                                                                  1
-                                                                  ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                      ( case inputToken of
-                                                                          (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
-                                                                      )
-                                                                  )
-                                                                  Data.Set.Internal.Tip
-                                                                  Data.Set.Internal.Tip
-                                                           in let (#
-                                                                    farInp,
-                                                                    farExp
-                                                                    #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init init of
-                                                                      GHC.Types.LT ->
-                                                                        (#
-                                                                          init,
-                                                                          failExp
-                                                                        #)
-                                                                      GHC.Types.EQ ->
-                                                                        (#
-                                                                          init,
-                                                                          failExp GHC.Base.<> Data.Set.Internal.empty
-                                                                        #)
-                                                                      GHC.Types.GT ->
-                                                                        (#
-                                                                          init,
-                                                                          Data.Set.Internal.empty
-                                                                        #)
-                                                               in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure init farInp farExp
-                                            else
-                                              let _ = "checkHorizon.else"
-                                               in let failExp =
-                                                        Data.Set.Internal.Bin
-                                                          1
-                                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                              ( case inputToken of
-                                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
-                                                              )
-                                                          )
-                                                          Data.Set.Internal.Tip
-                                                          Data.Set.Internal.Tip
-                                                   in let (#
-                                                            farInp,
-                                                            farExp
-                                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init init of
-                                                              GHC.Types.LT ->
-                                                                (#
-                                                                  init,
-                                                                  failExp
-                                                                #)
-                                                              GHC.Types.EQ ->
-                                                                (#
-                                                                  init,
-                                                                  failExp GHC.Base.<> Data.Set.Internal.empty
-                                                                #)
-                                                              GHC.Types.GT ->
-                                                                (#
-                                                                  init,
-                                                                  Data.Set.Internal.empty
-                                                                #)
-                                                       in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure init farInp farExp
diff --git a/test/Golden/Splice/G2.expected.txt b/test/Golden/Splice/G2.expected.txt
deleted file mode 100644
--- a/test/Golden/Splice/G2.expected.txt
+++ /dev/null
@@ -1,211 +0,0 @@
-\(input :: inp) ->
-  let !(#
-         init,
-         readMore,
-         readNext
-         #) =
-          let _ = "cursorOf"
-           in let next
-                    ( t@( Data.Text.Internal.Text
-                            arr
-                            off
-                            unconsumed
-                          )
-                      ) =
-                      let !( Data.Text.Unsafe.Iter
-                               c
-                               d
-                             ) = Data.Text.Unsafe.iter t 0
-                       in (#
-                            c,
-                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
-                          #)
-                  more
-                    ( Data.Text.Internal.Text
-                        _
-                        _
-                        unconsumed
-                      ) = unconsumed GHC.Classes.> 0
-               in (# input, more, next #)
-      finalRet = \_farInp _farExp v _inp -> Data.Either.Right v
-      finalRaise ::
-        forall b.
-        Symantic.Parser.Machine.Generate.Catcher
-          inp
-          b = \(!exn) _failInp (!farInp) (!farExp) ->
-          Data.Either.Left
-            Symantic.Parser.Machine.Generate.ParsingError
-              { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
-                Symantic.Parser.Machine.Generate.parsingErrorException = exn,
-                Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
-                  if readMore farInp
-                    then
-                      GHC.Maybe.Just
-                        ( let (#
-                                c,
-                                _
-                                #) = readNext farInp
-                           in c
-                        )
-                    else GHC.Maybe.Nothing,
-                Symantic.Parser.Machine.Generate.parsingErrorExpecting = farExp
-              }
-   in let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
-       in let
-           in let _ = "catch ExceptionFailure"
-               in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                        let _ = "catch.ko ExceptionFailure"
-                         in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure init farInp farExp
-                   in let readFail = catchHandler
-                       in if readMore (Symantic.Parser.Machine.Input.shiftRightText 2 init)
-                            then
-                              let !(# c, cs #) = readNext init
-                               in if (GHC.Classes.==) 'a' c
-                                    then
-                                      let readFail = readFail
-                                       in let !(# c, cs #) = readNext cs
-                                           in if (GHC.Classes.==) 'b' c
-                                                then
-                                                  let readFail = readFail
-                                                   in let !(#
-                                                             c,
-                                                             cs
-                                                             #) = readNext cs
-                                                       in if (GHC.Classes.==) 'c' c
-                                                            then
-                                                              let _ = "resume"
-                                                               in finalRet
-                                                                    init
-                                                                    Data.Set.Internal.empty
-                                                                    ( let _ = "resume.genCode"
-                                                                       in GHC.Show.show ((GHC.Types.:) 'a' ((GHC.Types.:) 'b' ((GHC.Types.:) 'c' GHC.Types . [])))
-                                                                    )
-                                                                    cs
-                                                            else
-                                                              let _ = "checkToken.else"
-                                                               in let failExp =
-                                                                        Data.Set.Internal.Bin
-                                                                          1
-                                                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                              ( case inputToken of
-                                                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'c'
-                                                                              )
-                                                                          )
-                                                                          Data.Set.Internal.Tip
-                                                                          Data.Set.Internal.Tip
-                                                                   in let (#
-                                                                            farInp,
-                                                                            farExp
-                                                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init cs of
-                                                                              GHC.Types.LT ->
-                                                                                (#
-                                                                                  cs,
-                                                                                  failExp
-                                                                                #)
-                                                                              GHC.Types.EQ ->
-                                                                                (#
-                                                                                  init,
-                                                                                  failExp GHC.Base.<> Data.Set.Internal.empty
-                                                                                #)
-                                                                              GHC.Types.GT ->
-                                                                                (#
-                                                                                  init,
-                                                                                  Data.Set.Internal.empty
-                                                                                #)
-                                                                       in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
-                                                else
-                                                  let _ = "checkToken.else"
-                                                   in let failExp =
-                                                            Data.Set.Internal.Bin
-                                                              1
-                                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                  ( case inputToken of
-                                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'b'
-                                                                  )
-                                                              )
-                                                              Data.Set.Internal.Tip
-                                                              Data.Set.Internal.Tip
-                                                       in let (#
-                                                                farInp,
-                                                                farExp
-                                                                #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init cs of
-                                                                  GHC.Types.LT ->
-                                                                    (#
-                                                                      cs,
-                                                                      failExp
-                                                                    #)
-                                                                  GHC.Types.EQ ->
-                                                                    (#
-                                                                      init,
-                                                                      failExp GHC.Base.<> Data.Set.Internal.empty
-                                                                    #)
-                                                                  GHC.Types.GT ->
-                                                                    (#
-                                                                      init,
-                                                                      Data.Set.Internal.empty
-                                                                    #)
-                                                           in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
-                                    else
-                                      let _ = "checkToken.else"
-                                       in let failExp =
-                                                Data.Set.Internal.Bin
-                                                  1
-                                                  ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                      ( case inputToken of
-                                                          (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
-                                                      )
-                                                  )
-                                                  Data.Set.Internal.Tip
-                                                  Data.Set.Internal.Tip
-                                           in let (#
-                                                    farInp,
-                                                    farExp
-                                                    #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init init of
-                                                      GHC.Types.LT ->
-                                                        (#
-                                                          init,
-                                                          failExp
-                                                        #)
-                                                      GHC.Types.EQ ->
-                                                        (#
-                                                          init,
-                                                          failExp GHC.Base.<> Data.Set.Internal.empty
-                                                        #)
-                                                      GHC.Types.GT ->
-                                                        (#
-                                                          init,
-                                                          Data.Set.Internal.empty
-                                                        #)
-                                               in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure init farInp farExp
-                            else
-                              let _ = "checkHorizon.else"
-                               in let failExp =
-                                        Data.Set.Internal.Bin
-                                          1
-                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                              ( case inputToken of
-                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 3
-                                              )
-                                          )
-                                          Data.Set.Internal.Tip
-                                          Data.Set.Internal.Tip
-                                   in let (#
-                                            farInp,
-                                            farExp
-                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init init of
-                                              GHC.Types.LT ->
-                                                (#
-                                                  init,
-                                                  failExp
-                                                #)
-                                              GHC.Types.EQ ->
-                                                (#
-                                                  init,
-                                                  failExp GHC.Base.<> Data.Set.Internal.empty
-                                                #)
-                                              GHC.Types.GT ->
-                                                (#
-                                                  init,
-                                                  Data.Set.Internal.empty
-                                                #)
-                                       in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure init farInp farExp
diff --git a/test/Golden/Splice/G3.expected.txt b/test/Golden/Splice/G3.expected.txt
deleted file mode 100644
--- a/test/Golden/Splice/G3.expected.txt
+++ /dev/null
@@ -1,184 +0,0 @@
-\(input :: inp) ->
-  let !(#
-         init,
-         readMore,
-         readNext
-         #) =
-          let _ = "cursorOf"
-           in let next
-                    ( t@( Data.Text.Internal.Text
-                            arr
-                            off
-                            unconsumed
-                          )
-                      ) =
-                      let !( Data.Text.Unsafe.Iter
-                               c
-                               d
-                             ) = Data.Text.Unsafe.iter t 0
-                       in (#
-                            c,
-                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
-                          #)
-                  more
-                    ( Data.Text.Internal.Text
-                        _
-                        _
-                        unconsumed
-                      ) = unconsumed GHC.Classes.> 0
-               in (# input, more, next #)
-      finalRet = \_farInp _farExp v _inp -> Data.Either.Right v
-      finalRaise ::
-        forall b.
-        Symantic.Parser.Machine.Generate.Catcher
-          inp
-          b = \(!exn) _failInp (!farInp) (!farExp) ->
-          Data.Either.Left
-            Symantic.Parser.Machine.Generate.ParsingError
-              { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
-                Symantic.Parser.Machine.Generate.parsingErrorException = exn,
-                Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
-                  if readMore farInp
-                    then
-                      GHC.Maybe.Just
-                        ( let (#
-                                c,
-                                _
-                                #) = readNext farInp
-                           in c
-                        )
-                    else GHC.Maybe.Nothing,
-                Symantic.Parser.Machine.Generate.parsingErrorExpecting = farExp
-              }
-   in let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
-       in let name = \(!ok) (!inp) (!koByLabel) ->
-                let _ = "catch ExceptionFailure"
-                 in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                          let _ = "catch.ko ExceptionFailure"
-                           in if ( \( Data.Text.Internal.Text
-                                        _
-                                        i
-                                        _
-                                      )
-                                    ( Data.Text.Internal.Text
-                                        _
-                                        j
-                                        _
-                                      ) -> i GHC.Classes.== j
-                                 )
-                                inp
-                                failInp
-                                then
-                                  let _ = "choicesBranch.then"
-                                   in let _ = "resume"
-                                       in ok
-                                            farInp
-                                            farExp
-                                            ( let _ = "resume.genCode"
-                                               in \x -> x
-                                            )
-                                            failInp
-                                else
-                                  let _ = "choicesBranch.else"
-                                   in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                     in let readFail = catchHandler
-                         in if readMore inp
-                              then
-                                let !(#
-                                       c,
-                                       cs
-                                       #) = readNext inp
-                                 in if (GHC.Classes.==) 'a' c
-                                      then
-                                        name
-                                          ( let _ = "suspend"
-                                             in \farInp farExp v (!inp) ->
-                                                  let _ = "resume"
-                                                   in ok
-                                                        farInp
-                                                        farExp
-                                                        ( let _ = "resume.genCode"
-                                                           in \x -> (GHC.Types.:) 'a' (v x)
-                                                        )
-                                                        inp
-                                          )
-                                          cs
-                                          (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                      else
-                                        let _ = "checkToken.else"
-                                         in let failExp =
-                                                  Data.Set.Internal.Bin
-                                                    1
-                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                        ( case inputToken of
-                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
-                                                        )
-                                                    )
-                                                    Data.Set.Internal.Tip
-                                                    Data.Set.Internal.Tip
-                                             in let (#
-                                                      farInp,
-                                                      farExp
-                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                        GHC.Types.LT ->
-                                                          (#
-                                                            inp,
-                                                            failExp
-                                                          #)
-                                                        GHC.Types.EQ ->
-                                                          (#
-                                                            init,
-                                                            failExp GHC.Base.<> Data.Set.Internal.empty
-                                                          #)
-                                                        GHC.Types.GT ->
-                                                          (#
-                                                            init,
-                                                            Data.Set.Internal.empty
-                                                          #)
-                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                              else
-                                let _ = "checkHorizon.else"
-                                 in let failExp =
-                                          Data.Set.Internal.Bin
-                                            1
-                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                ( case inputToken of
-                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
-                                                )
-                                            )
-                                            Data.Set.Internal.Tip
-                                            Data.Set.Internal.Tip
-                                     in let (#
-                                              farInp,
-                                              farExp
-                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                GHC.Types.LT ->
-                                                  (#
-                                                    inp,
-                                                    failExp
-                                                  #)
-                                                GHC.Types.EQ ->
-                                                  (#
-                                                    init,
-                                                    failExp GHC.Base.<> Data.Set.Internal.empty
-                                                  #)
-                                                GHC.Types.GT ->
-                                                  (#
-                                                    init,
-                                                    Data.Set.Internal.empty
-                                                  #)
-                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-           in name
-                ( let _ = "suspend"
-                   in \farInp farExp v (!inp) ->
-                        let _ = "resume"
-                         in finalRet
-                              farInp
-                              farExp
-                              ( let _ = "resume.genCode"
-                                 in GHC.Show.show (v GHC.Types . [])
-                              )
-                              inp
-                )
-                init
-                Data.Map.Internal.Tip
diff --git a/test/Golden/Splice/G4.expected.txt b/test/Golden/Splice/G4.expected.txt
deleted file mode 100644
--- a/test/Golden/Splice/G4.expected.txt
+++ /dev/null
@@ -1,326 +0,0 @@
-\(input :: inp) ->
-  let !(#
-         init,
-         readMore,
-         readNext
-         #) =
-          let _ = "cursorOf"
-           in let next
-                    ( t@( Data.Text.Internal.Text
-                            arr
-                            off
-                            unconsumed
-                          )
-                      ) =
-                      let !( Data.Text.Unsafe.Iter
-                               c
-                               d
-                             ) = Data.Text.Unsafe.iter t 0
-                       in (#
-                            c,
-                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
-                          #)
-                  more
-                    ( Data.Text.Internal.Text
-                        _
-                        _
-                        unconsumed
-                      ) = unconsumed GHC.Classes.> 0
-               in (# input, more, next #)
-      finalRet = \_farInp _farExp v _inp -> Data.Either.Right v
-      finalRaise ::
-        forall b.
-        Symantic.Parser.Machine.Generate.Catcher
-          inp
-          b = \(!exn) _failInp (!farInp) (!farExp) ->
-          Data.Either.Left
-            Symantic.Parser.Machine.Generate.ParsingError
-              { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
-                Symantic.Parser.Machine.Generate.parsingErrorException = exn,
-                Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
-                  if readMore farInp
-                    then
-                      GHC.Maybe.Just
-                        ( let (#
-                                c,
-                                _
-                                #) = readNext farInp
-                           in c
-                        )
-                    else GHC.Maybe.Nothing,
-                Symantic.Parser.Machine.Generate.parsingErrorExpecting = farExp
-              }
-   in let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
-       in let name = \(!ok) (!inp) (!koByLabel) ->
-                let _ = "catch ExceptionFailure"
-                 in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                          let _ = "catch.ko ExceptionFailure"
-                           in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                     in let readFail = catchHandler
-                         in if readMore (Symantic.Parser.Machine.Input.shiftRightText 3 inp)
-                              then
-                                let !(#
-                                       c,
-                                       cs
-                                       #) = readNext inp
-                                 in if (GHC.Classes.==) 'a' c
-                                      then
-                                        let readFail = readFail
-                                         in let !(#
-                                                   c,
-                                                   cs
-                                                   #) = readNext cs
-                                             in if (GHC.Classes.==) 'b' c
-                                                  then
-                                                    let readFail = readFail
-                                                     in let !(#
-                                                               c,
-                                                               cs
-                                                               #) = readNext cs
-                                                         in if (GHC.Classes.==) 'c' c
-                                                              then
-                                                                let readFail = readFail
-                                                                 in let !(#
-                                                                           c,
-                                                                           cs
-                                                                           #) = readNext cs
-                                                                     in if (GHC.Classes.==) 'd' c
-                                                                          then
-                                                                            let _ = "resume"
-                                                                             in ok
-                                                                                  init
-                                                                                  Data.Set.Internal.empty
-                                                                                  ( let _ = "resume.genCode"
-                                                                                     in (GHC.Types.:) 'a' ((GHC.Types.:) 'b' ((GHC.Types.:) 'c' ((GHC.Types.:) 'd' GHC.Types . [])))
-                                                                                  )
-                                                                                  cs
-                                                                          else
-                                                                            let _ = "checkToken.else"
-                                                                             in let failExp =
-                                                                                      Data.Set.Internal.Bin
-                                                                                        1
-                                                                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                            ( case inputToken of
-                                                                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'd'
-                                                                                            )
-                                                                                        )
-                                                                                        Data.Set.Internal.Tip
-                                                                                        Data.Set.Internal.Tip
-                                                                                 in let (#
-                                                                                          farInp,
-                                                                                          farExp
-                                                                                          #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init cs of
-                                                                                            GHC.Types.LT ->
-                                                                                              (#
-                                                                                                cs,
-                                                                                                failExp
-                                                                                              #)
-                                                                                            GHC.Types.EQ ->
-                                                                                              (#
-                                                                                                init,
-                                                                                                failExp GHC.Base.<> Data.Set.Internal.empty
-                                                                                              #)
-                                                                                            GHC.Types.GT ->
-                                                                                              (#
-                                                                                                init,
-                                                                                                Data.Set.Internal.empty
-                                                                                              #)
-                                                                                     in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
-                                                              else
-                                                                let _ = "checkToken.else"
-                                                                 in let failExp =
-                                                                          Data.Set.Internal.Bin
-                                                                            1
-                                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                ( case inputToken of
-                                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'c'
-                                                                                )
-                                                                            )
-                                                                            Data.Set.Internal.Tip
-                                                                            Data.Set.Internal.Tip
-                                                                     in let (#
-                                                                              farInp,
-                                                                              farExp
-                                                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init cs of
-                                                                                GHC.Types.LT ->
-                                                                                  (#
-                                                                                    cs,
-                                                                                    failExp
-                                                                                  #)
-                                                                                GHC.Types.EQ ->
-                                                                                  (#
-                                                                                    init,
-                                                                                    failExp GHC.Base.<> Data.Set.Internal.empty
-                                                                                  #)
-                                                                                GHC.Types.GT ->
-                                                                                  (#
-                                                                                    init,
-                                                                                    Data.Set.Internal.empty
-                                                                                  #)
-                                                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
-                                                  else
-                                                    let _ = "checkToken.else"
-                                                     in let failExp =
-                                                              Data.Set.Internal.Bin
-                                                                1
-                                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                    ( case inputToken of
-                                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'b'
-                                                                    )
-                                                                )
-                                                                Data.Set.Internal.Tip
-                                                                Data.Set.Internal.Tip
-                                                         in let (#
-                                                                  farInp,
-                                                                  farExp
-                                                                  #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init cs of
-                                                                    GHC.Types.LT ->
-                                                                      (#
-                                                                        cs,
-                                                                        failExp
-                                                                      #)
-                                                                    GHC.Types.EQ ->
-                                                                      (#
-                                                                        init,
-                                                                        failExp GHC.Base.<> Data.Set.Internal.empty
-                                                                      #)
-                                                                    GHC.Types.GT ->
-                                                                      (#
-                                                                        init,
-                                                                        Data.Set.Internal.empty
-                                                                      #)
-                                                             in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
-                                      else
-                                        let _ = "checkToken.else"
-                                         in let failExp =
-                                                  Data.Set.Internal.Bin
-                                                    1
-                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                        ( case inputToken of
-                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
-                                                        )
-                                                    )
-                                                    Data.Set.Internal.Tip
-                                                    Data.Set.Internal.Tip
-                                             in let (#
-                                                      farInp,
-                                                      farExp
-                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                        GHC.Types.LT ->
-                                                          (#
-                                                            inp,
-                                                            failExp
-                                                          #)
-                                                        GHC.Types.EQ ->
-                                                          (#
-                                                            init,
-                                                            failExp GHC.Base.<> Data.Set.Internal.empty
-                                                          #)
-                                                        GHC.Types.GT ->
-                                                          (#
-                                                            init,
-                                                            Data.Set.Internal.empty
-                                                          #)
-                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                              else
-                                let _ = "checkHorizon.else"
-                                 in let failExp =
-                                          Data.Set.Internal.Bin
-                                            1
-                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                ( case inputToken of
-                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 4
-                                                )
-                                            )
-                                            Data.Set.Internal.Tip
-                                            Data.Set.Internal.Tip
-                                     in let (#
-                                              farInp,
-                                              farExp
-                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                GHC.Types.LT ->
-                                                  (#
-                                                    inp,
-                                                    failExp
-                                                  #)
-                                                GHC.Types.EQ ->
-                                                  (#
-                                                    init,
-                                                    failExp GHC.Base.<> Data.Set.Internal.empty
-                                                  #)
-                                                GHC.Types.GT ->
-                                                  (#
-                                                    init,
-                                                    Data.Set.Internal.empty
-                                                  #)
-                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-              name = \(!ok) (!inp) (!koByLabel) ->
-                let _ = "catch ExceptionFailure"
-                 in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                          let _ = "catch.ko ExceptionFailure"
-                           in if ( \( Data.Text.Internal.Text
-                                        _
-                                        i
-                                        _
-                                      )
-                                    ( Data.Text.Internal.Text
-                                        _
-                                        j
-                                        _
-                                      ) -> i GHC.Classes.== j
-                                 )
-                                inp
-                                failInp
-                                then
-                                  let _ = "choicesBranch.then"
-                                   in let _ = "resume"
-                                       in ok
-                                            farInp
-                                            farExp
-                                            ( let _ = "resume.genCode"
-                                               in \x -> x
-                                            )
-                                            failInp
-                                else
-                                  let _ = "choicesBranch.else"
-                                   in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                     in name
-                          ( let _ = "suspend"
-                             in \farInp farExp v (!inp) ->
-                                  name
-                                    ( let _ = "suspend"
-                                       in \farInp farExp v (!inp) ->
-                                            let _ = "resume"
-                                             in ok
-                                                  farInp
-                                                  farExp
-                                                  ( let _ = "resume.genCode"
-                                                     in \x -> (GHC.Types.:) v (v x)
-                                                  )
-                                                  inp
-                                    )
-                                    inp
-                                    (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                          )
-                          inp
-                          (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-           in name
-                ( let _ = "suspend"
-                   in \farInp farExp v (!inp) ->
-                        name
-                          ( let _ = "suspend"
-                             in \farInp farExp v (!inp) ->
-                                  let _ = "resume"
-                                   in finalRet
-                                        farInp
-                                        farExp
-                                        ( let _ = "resume.genCode"
-                                           in GHC.Show.show ((GHC.Types.:) v (v GHC.Types . []))
-                                        )
-                                        inp
-                          )
-                          inp
-                          Data.Map.Internal.Tip
-                )
-                init
-                Data.Map.Internal.Tip
diff --git a/test/Golden/Splice/G5.expected.txt b/test/Golden/Splice/G5.expected.txt
deleted file mode 100644
--- a/test/Golden/Splice/G5.expected.txt
+++ /dev/null
@@ -1,420 +0,0 @@
-\(input :: inp) ->
-  let !(#
-         init,
-         readMore,
-         readNext
-         #) =
-          let _ = "cursorOf"
-           in let next
-                    ( t@( Data.Text.Internal.Text
-                            arr
-                            off
-                            unconsumed
-                          )
-                      ) =
-                      let !( Data.Text.Unsafe.Iter
-                               c
-                               d
-                             ) = Data.Text.Unsafe.iter t 0
-                       in (#
-                            c,
-                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
-                          #)
-                  more
-                    ( Data.Text.Internal.Text
-                        _
-                        _
-                        unconsumed
-                      ) = unconsumed GHC.Classes.> 0
-               in (# input, more, next #)
-      finalRet = \_farInp _farExp v _inp -> Data.Either.Right v
-      finalRaise ::
-        forall b.
-        Symantic.Parser.Machine.Generate.Catcher
-          inp
-          b = \(!exn) _failInp (!farInp) (!farExp) ->
-          Data.Either.Left
-            Symantic.Parser.Machine.Generate.ParsingError
-              { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
-                Symantic.Parser.Machine.Generate.parsingErrorException = exn,
-                Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
-                  if readMore farInp
-                    then
-                      GHC.Maybe.Just
-                        ( let (#
-                                c,
-                                _
-                                #) = readNext farInp
-                           in c
-                        )
-                    else GHC.Maybe.Nothing,
-                Symantic.Parser.Machine.Generate.parsingErrorExpecting = farExp
-              }
-   in let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
-       in let name = \(!ok) (!inp) (!koByLabel) ->
-                let _ = "catch ExceptionFailure"
-                 in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                          let _ = "catch.ko ExceptionFailure"
-                           in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                     in let readFail = catchHandler
-                         in if readMore (Symantic.Parser.Machine.Input.shiftRightText 3 inp)
-                              then
-                                let !(#
-                                       c,
-                                       cs
-                                       #) = readNext inp
-                                 in if (GHC.Classes.==) 'a' c
-                                      then
-                                        let readFail = readFail
-                                         in let !(#
-                                                   c,
-                                                   cs
-                                                   #) = readNext cs
-                                             in if (GHC.Classes.==) 'b' c
-                                                  then
-                                                    let readFail = readFail
-                                                     in let !(#
-                                                               c,
-                                                               cs
-                                                               #) = readNext cs
-                                                         in if (GHC.Classes.==) 'c' c
-                                                              then
-                                                                let readFail = readFail
-                                                                 in let !(#
-                                                                           c,
-                                                                           cs
-                                                                           #) = readNext cs
-                                                                     in if (GHC.Classes.==) 'd' c
-                                                                          then
-                                                                            let _ = "resume"
-                                                                             in ok
-                                                                                  init
-                                                                                  Data.Set.Internal.empty
-                                                                                  ( let _ = "resume.genCode"
-                                                                                     in (GHC.Types.:) 'a' ((GHC.Types.:) 'b' ((GHC.Types.:) 'c' ((GHC.Types.:) 'd' GHC.Types . [])))
-                                                                                  )
-                                                                                  cs
-                                                                          else
-                                                                            let _ = "checkToken.else"
-                                                                             in let failExp =
-                                                                                      Data.Set.Internal.Bin
-                                                                                        1
-                                                                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                            ( case inputToken of
-                                                                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'd'
-                                                                                            )
-                                                                                        )
-                                                                                        Data.Set.Internal.Tip
-                                                                                        Data.Set.Internal.Tip
-                                                                                 in let (#
-                                                                                          farInp,
-                                                                                          farExp
-                                                                                          #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init cs of
-                                                                                            GHC.Types.LT ->
-                                                                                              (#
-                                                                                                cs,
-                                                                                                failExp
-                                                                                              #)
-                                                                                            GHC.Types.EQ ->
-                                                                                              (#
-                                                                                                init,
-                                                                                                failExp GHC.Base.<> Data.Set.Internal.empty
-                                                                                              #)
-                                                                                            GHC.Types.GT ->
-                                                                                              (#
-                                                                                                init,
-                                                                                                Data.Set.Internal.empty
-                                                                                              #)
-                                                                                     in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
-                                                              else
-                                                                let _ = "checkToken.else"
-                                                                 in let failExp =
-                                                                          Data.Set.Internal.Bin
-                                                                            1
-                                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                ( case inputToken of
-                                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'c'
-                                                                                )
-                                                                            )
-                                                                            Data.Set.Internal.Tip
-                                                                            Data.Set.Internal.Tip
-                                                                     in let (#
-                                                                              farInp,
-                                                                              farExp
-                                                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init cs of
-                                                                                GHC.Types.LT ->
-                                                                                  (#
-                                                                                    cs,
-                                                                                    failExp
-                                                                                  #)
-                                                                                GHC.Types.EQ ->
-                                                                                  (#
-                                                                                    init,
-                                                                                    failExp GHC.Base.<> Data.Set.Internal.empty
-                                                                                  #)
-                                                                                GHC.Types.GT ->
-                                                                                  (#
-                                                                                    init,
-                                                                                    Data.Set.Internal.empty
-                                                                                  #)
-                                                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
-                                                  else
-                                                    let _ = "checkToken.else"
-                                                     in let failExp =
-                                                              Data.Set.Internal.Bin
-                                                                1
-                                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                    ( case inputToken of
-                                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'b'
-                                                                    )
-                                                                )
-                                                                Data.Set.Internal.Tip
-                                                                Data.Set.Internal.Tip
-                                                         in let (#
-                                                                  farInp,
-                                                                  farExp
-                                                                  #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init cs of
-                                                                    GHC.Types.LT ->
-                                                                      (#
-                                                                        cs,
-                                                                        failExp
-                                                                      #)
-                                                                    GHC.Types.EQ ->
-                                                                      (#
-                                                                        init,
-                                                                        failExp GHC.Base.<> Data.Set.Internal.empty
-                                                                      #)
-                                                                    GHC.Types.GT ->
-                                                                      (#
-                                                                        init,
-                                                                        Data.Set.Internal.empty
-                                                                      #)
-                                                             in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
-                                      else
-                                        let _ = "checkToken.else"
-                                         in let failExp =
-                                                  Data.Set.Internal.Bin
-                                                    1
-                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                        ( case inputToken of
-                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
-                                                        )
-                                                    )
-                                                    Data.Set.Internal.Tip
-                                                    Data.Set.Internal.Tip
-                                             in let (#
-                                                      farInp,
-                                                      farExp
-                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                        GHC.Types.LT ->
-                                                          (#
-                                                            inp,
-                                                            failExp
-                                                          #)
-                                                        GHC.Types.EQ ->
-                                                          (#
-                                                            init,
-                                                            failExp GHC.Base.<> Data.Set.Internal.empty
-                                                          #)
-                                                        GHC.Types.GT ->
-                                                          (#
-                                                            init,
-                                                            Data.Set.Internal.empty
-                                                          #)
-                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                              else
-                                let _ = "checkHorizon.else"
-                                 in let failExp =
-                                          Data.Set.Internal.Bin
-                                            1
-                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                ( case inputToken of
-                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 4
-                                                )
-                                            )
-                                            Data.Set.Internal.Tip
-                                            Data.Set.Internal.Tip
-                                     in let (#
-                                              farInp,
-                                              farExp
-                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                GHC.Types.LT ->
-                                                  (#
-                                                    inp,
-                                                    failExp
-                                                  #)
-                                                GHC.Types.EQ ->
-                                                  (#
-                                                    init,
-                                                    failExp GHC.Base.<> Data.Set.Internal.empty
-                                                  #)
-                                                GHC.Types.GT ->
-                                                  (#
-                                                    init,
-                                                    Data.Set.Internal.empty
-                                                  #)
-                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-              name = \(!ok) (!inp) (!koByLabel) ->
-                let _ = "catch ExceptionFailure"
-                 in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                          let _ = "catch.ko ExceptionFailure"
-                           in if ( \( Data.Text.Internal.Text
-                                        _
-                                        i
-                                        _
-                                      )
-                                    ( Data.Text.Internal.Text
-                                        _
-                                        j
-                                        _
-                                      ) -> i GHC.Classes.== j
-                                 )
-                                inp
-                                failInp
-                                then
-                                  let _ = "choicesBranch.then"
-                                   in let _ = "resume"
-                                       in ok
-                                            farInp
-                                            farExp
-                                            ( let _ = "resume.genCode"
-                                               in \x -> x
-                                            )
-                                            failInp
-                                else
-                                  let _ = "choicesBranch.else"
-                                   in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                     in name
-                          ( let _ = "suspend"
-                             in \farInp farExp v (!inp) ->
-                                  name
-                                    ( let _ = "suspend"
-                                       in \farInp farExp v (!inp) ->
-                                            let _ = "resume"
-                                             in ok
-                                                  farInp
-                                                  farExp
-                                                  ( let _ = "resume.genCode"
-                                                     in \x -> (GHC.Types.:) v (v x)
-                                                  )
-                                                  inp
-                                    )
-                                    inp
-                                    (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                          )
-                          inp
-                          (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure catchHandler Data.Map.Internal.Tip Data.Map.Internal.Tip)
-           in name
-                ( let _ = "suspend"
-                   in \farInp farExp v (!inp) ->
-                        name
-                          ( let _ = "suspend"
-                             in \farInp farExp v (!inp) ->
-                                  let join = \farInp farExp v (!inp) ->
-                                        let _ = "resume"
-                                         in finalRet
-                                              farInp
-                                              farExp
-                                              ( let _ = "resume.genCode"
-                                                 in GHC.Show.show ((GHC.Types.:) v (v GHC.Types . []))
-                                              )
-                                              inp
-                                   in let _ = "catch ExceptionFailure"
-                                       in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                                                let _ = "catch.ko ExceptionFailure"
-                                                 in if ( \( Data.Text.Internal.Text
-                                                              _
-                                                              i
-                                                              _
-                                                            )
-                                                          ( Data.Text.Internal.Text
-                                                              _
-                                                              j
-                                                              _
-                                                            ) -> i GHC.Classes.== j
-                                                       )
-                                                      inp
-                                                      failInp
-                                                      then
-                                                        let _ = "choicesBranch.then"
-                                                         in let failExp = Data.Set.Internal.Bin 1 (Symantic.Parser.Grammar.Combinators.SomeFailure Symantic.Parser.Grammar.Combinators.FailureEnd) Data.Set.Internal.Tip Data.Set.Internal.Tip
-                                                             in let (#
-                                                                      farInp,
-                                                                      farExp
-                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp failInp of
-                                                                        GHC.Types.LT ->
-                                                                          (#
-                                                                            failInp,
-                                                                            failExp
-                                                                          #)
-                                                                        GHC.Types.EQ ->
-                                                                          (#
-                                                                            farInp,
-                                                                            failExp GHC.Base.<> farExp
-                                                                          #)
-                                                                        GHC.Types.GT ->
-                                                                          (#
-                                                                            farInp,
-                                                                            farExp
-                                                                          #)
-                                                                 in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                                      else
-                                                        let _ = "choicesBranch.else"
-                                                         in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                           in let _ = "catch ExceptionFailure"
-                                               in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                                                        let _ = "catch.ko ExceptionFailure"
-                                                         in let _ = "resume"
-                                                             in join
-                                                                  farInp
-                                                                  farExp
-                                                                  ( let _ = "resume.genCode"
-                                                                     in GHC.Tuple . ()
-                                                                  )
-                                                                  inp
-                                                   in let readFail = catchHandler
-                                                       in if readMore inp
-                                                            then
-                                                              let !(#
-                                                                     c,
-                                                                     cs
-                                                                     #) = readNext inp
-                                                               in catchHandler Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                                                            else
-                                                              let _ = "checkHorizon.else"
-                                                               in let failExp =
-                                                                        Data.Set.Internal.Bin
-                                                                          1
-                                                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                              ( case inputToken of
-                                                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
-                                                                              )
-                                                                          )
-                                                                          Data.Set.Internal.Tip
-                                                                          Data.Set.Internal.Tip
-                                                                   in let (#
-                                                                            farInp,
-                                                                            farExp
-                                                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
-                                                                              GHC.Types.LT ->
-                                                                                (#
-                                                                                  inp,
-                                                                                  failExp
-                                                                                #)
-                                                                              GHC.Types.EQ ->
-                                                                                (#
-                                                                                  farInp,
-                                                                                  failExp GHC.Base.<> farExp
-                                                                                #)
-                                                                              GHC.Types.GT ->
-                                                                                (#
-                                                                                  farInp,
-                                                                                  farExp
-                                                                                #)
-                                                                       in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                          )
-                          inp
-                          Data.Map.Internal.Tip
-                )
-                init
-                Data.Map.Internal.Tip
diff --git a/test/Golden/Splice/G6.expected.txt b/test/Golden/Splice/G6.expected.txt
deleted file mode 100644
--- a/test/Golden/Splice/G6.expected.txt
+++ /dev/null
@@ -1,318 +0,0 @@
-\(input :: inp) ->
-  let !(#
-         init,
-         readMore,
-         readNext
-         #) =
-          let _ = "cursorOf"
-           in let next
-                    ( t@( Data.Text.Internal.Text
-                            arr
-                            off
-                            unconsumed
-                          )
-                      ) =
-                      let !( Data.Text.Unsafe.Iter
-                               c
-                               d
-                             ) = Data.Text.Unsafe.iter t 0
-                       in (#
-                            c,
-                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
-                          #)
-                  more
-                    ( Data.Text.Internal.Text
-                        _
-                        _
-                        unconsumed
-                      ) = unconsumed GHC.Classes.> 0
-               in (# input, more, next #)
-      finalRet = \_farInp _farExp v _inp -> Data.Either.Right v
-      finalRaise ::
-        forall b.
-        Symantic.Parser.Machine.Generate.Catcher
-          inp
-          b = \(!exn) _failInp (!farInp) (!farExp) ->
-          Data.Either.Left
-            Symantic.Parser.Machine.Generate.ParsingError
-              { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
-                Symantic.Parser.Machine.Generate.parsingErrorException = exn,
-                Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
-                  if readMore farInp
-                    then
-                      GHC.Maybe.Just
-                        ( let (#
-                                c,
-                                _
-                                #) = readNext farInp
-                           in c
-                        )
-                    else GHC.Maybe.Nothing,
-                Symantic.Parser.Machine.Generate.parsingErrorExpecting = farExp
-              }
-   in let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
-       in let
-           in let join = \farInp farExp v (!inp) ->
-                    let _ = "resume"
-                     in finalRet
-                          farInp
-                          farExp
-                          ( let _ = "resume.genCode"
-                             in GHC.Show.show v
-                          )
-                          inp
-               in let _ = "catch ExceptionFailure"
-                   in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                            let _ = "catch.ko ExceptionFailure"
-                             in if ( \( Data.Text.Internal.Text
-                                          _
-                                          i
-                                          _
-                                        )
-                                      ( Data.Text.Internal.Text
-                                          _
-                                          j
-                                          _
-                                        ) -> i GHC.Classes.== j
-                                   )
-                                  init
-                                  failInp
-                                  then
-                                    let _ = "choicesBranch.then"
-                                     in let readFail = finalRaise
-                                         in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 failInp)
-                                              then
-                                                let !(#
-                                                       c,
-                                                       cs
-                                                       #) = readNext failInp
-                                                 in if (GHC.Classes.==) 'a' c
-                                                      then
-                                                        let readFail = finalRaise
-                                                         in let !(#
-                                                                   c,
-                                                                   cs
-                                                                   #) = readNext cs
-                                                             in if (GHC.Classes.==) 'b' c
-                                                                  then
-                                                                    let _ = "resume"
-                                                                     in join
-                                                                          farInp
-                                                                          farExp
-                                                                          ( let _ = "resume.genCode"
-                                                                             in (GHC.Types.:) 'a' ((GHC.Types.:) 'b' GHC.Types . [])
-                                                                          )
-                                                                          cs
-                                                                  else
-                                                                    let _ = "checkToken.else"
-                                                                     in let failExp =
-                                                                              Data.Set.Internal.Bin
-                                                                                1
-                                                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                    ( case inputToken of
-                                                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'b'
-                                                                                    )
-                                                                                )
-                                                                                Data.Set.Internal.Tip
-                                                                                Data.Set.Internal.Tip
-                                                                         in let (#
-                                                                                  farInp,
-                                                                                  farExp
-                                                                                  #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp cs of
-                                                                                    GHC.Types.LT ->
-                                                                                      (#
-                                                                                        cs,
-                                                                                        failExp
-                                                                                      #)
-                                                                                    GHC.Types.EQ ->
-                                                                                      (#
-                                                                                        farInp,
-                                                                                        failExp GHC.Base.<> farExp
-                                                                                      #)
-                                                                                    GHC.Types.GT ->
-                                                                                      (#
-                                                                                        farInp,
-                                                                                        farExp
-                                                                                      #)
-                                                                             in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
-                                                      else
-                                                        let _ = "checkToken.else"
-                                                         in let failExp =
-                                                                  Data.Set.Internal.Bin
-                                                                    1
-                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                        ( case inputToken of
-                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
-                                                                        )
-                                                                    )
-                                                                    Data.Set.Internal.Tip
-                                                                    Data.Set.Internal.Tip
-                                                             in let (#
-                                                                      farInp,
-                                                                      farExp
-                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp failInp of
-                                                                        GHC.Types.LT ->
-                                                                          (#
-                                                                            failInp,
-                                                                            failExp
-                                                                          #)
-                                                                        GHC.Types.EQ ->
-                                                                          (#
-                                                                            farInp,
-                                                                            failExp GHC.Base.<> farExp
-                                                                          #)
-                                                                        GHC.Types.GT ->
-                                                                          (#
-                                                                            farInp,
-                                                                            farExp
-                                                                          #)
-                                                                 in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                              else
-                                                let _ = "checkHorizon.else"
-                                                 in let failExp =
-                                                          Data.Set.Internal.Bin
-                                                            1
-                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                ( case inputToken of
-                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
-                                                                )
-                                                            )
-                                                            Data.Set.Internal.Tip
-                                                            Data.Set.Internal.Tip
-                                                     in let (#
-                                                              farInp,
-                                                              farExp
-                                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp failInp of
-                                                                GHC.Types.LT ->
-                                                                  (#
-                                                                    failInp,
-                                                                    failExp
-                                                                  #)
-                                                                GHC.Types.EQ ->
-                                                                  (#
-                                                                    farInp,
-                                                                    failExp GHC.Base.<> farExp
-                                                                  #)
-                                                                GHC.Types.GT ->
-                                                                  (#
-                                                                    farInp,
-                                                                    farExp
-                                                                  #)
-                                                         in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                  else
-                                    let _ = "choicesBranch.else"
-                                     in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                       in let readFail = catchHandler
-                           in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 init)
-                                then
-                                  let !(# c, cs #) = readNext init
-                                   in if (GHC.Classes.==) 'a' c
-                                        then
-                                          let readFail = readFail
-                                           in let !(# c, cs #) = readNext cs
-                                               in if (GHC.Classes.==) 'a' c
-                                                    then
-                                                      let _ = "resume"
-                                                       in join
-                                                            init
-                                                            Data.Set.Internal.empty
-                                                            ( let _ = "resume.genCode"
-                                                               in (GHC.Types.:) 'a' ((GHC.Types.:) 'a' GHC.Types . [])
-                                                            )
-                                                            cs
-                                                    else
-                                                      let _ = "checkToken.else"
-                                                       in let failExp =
-                                                                Data.Set.Internal.Bin
-                                                                  1
-                                                                  ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                      ( case inputToken of
-                                                                          (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
-                                                                      )
-                                                                  )
-                                                                  Data.Set.Internal.Tip
-                                                                  Data.Set.Internal.Tip
-                                                           in let (#
-                                                                    farInp,
-                                                                    farExp
-                                                                    #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init cs of
-                                                                      GHC.Types.LT ->
-                                                                        (#
-                                                                          cs,
-                                                                          failExp
-                                                                        #)
-                                                                      GHC.Types.EQ ->
-                                                                        (#
-                                                                          init,
-                                                                          failExp GHC.Base.<> Data.Set.Internal.empty
-                                                                        #)
-                                                                      GHC.Types.GT ->
-                                                                        (#
-                                                                          init,
-                                                                          Data.Set.Internal.empty
-                                                                        #)
-                                                               in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
-                                        else
-                                          let _ = "checkToken.else"
-                                           in let failExp =
-                                                    Data.Set.Internal.Bin
-                                                      1
-                                                      ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                          ( case inputToken of
-                                                              (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
-                                                          )
-                                                      )
-                                                      Data.Set.Internal.Tip
-                                                      Data.Set.Internal.Tip
-                                               in let (#
-                                                        farInp,
-                                                        farExp
-                                                        #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init init of
-                                                          GHC.Types.LT ->
-                                                            (#
-                                                              init,
-                                                              failExp
-                                                            #)
-                                                          GHC.Types.EQ ->
-                                                            (#
-                                                              init,
-                                                              failExp GHC.Base.<> Data.Set.Internal.empty
-                                                            #)
-                                                          GHC.Types.GT ->
-                                                            (#
-                                                              init,
-                                                              Data.Set.Internal.empty
-                                                            #)
-                                                   in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure init farInp farExp
-                                else
-                                  let _ = "checkHorizon.else"
-                                   in let failExp =
-                                            Data.Set.Internal.Bin
-                                              1
-                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                  ( case inputToken of
-                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
-                                                  )
-                                              )
-                                              Data.Set.Internal.Tip
-                                              Data.Set.Internal.Tip
-                                       in let (#
-                                                farInp,
-                                                farExp
-                                                #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init init of
-                                                  GHC.Types.LT ->
-                                                    (#
-                                                      init,
-                                                      failExp
-                                                    #)
-                                                  GHC.Types.EQ ->
-                                                    (#
-                                                      init,
-                                                      failExp GHC.Base.<> Data.Set.Internal.empty
-                                                    #)
-                                                  GHC.Types.GT ->
-                                                    (#
-                                                      init,
-                                                      Data.Set.Internal.empty
-                                                    #)
-                                           in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure init farInp farExp
diff --git a/test/Golden/Splice/G7.expected.txt b/test/Golden/Splice/G7.expected.txt
deleted file mode 100644
--- a/test/Golden/Splice/G7.expected.txt
+++ /dev/null
@@ -1,329 +0,0 @@
-\(input :: inp) ->
-  let !(#
-         init,
-         readMore,
-         readNext
-         #) =
-          let _ = "cursorOf"
-           in let next
-                    ( t@( Data.Text.Internal.Text
-                            arr
-                            off
-                            unconsumed
-                          )
-                      ) =
-                      let !( Data.Text.Unsafe.Iter
-                               c
-                               d
-                             ) = Data.Text.Unsafe.iter t 0
-                       in (#
-                            c,
-                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
-                          #)
-                  more
-                    ( Data.Text.Internal.Text
-                        _
-                        _
-                        unconsumed
-                      ) = unconsumed GHC.Classes.> 0
-               in (# input, more, next #)
-      finalRet = \_farInp _farExp v _inp -> Data.Either.Right v
-      finalRaise ::
-        forall b.
-        Symantic.Parser.Machine.Generate.Catcher
-          inp
-          b = \(!exn) _failInp (!farInp) (!farExp) ->
-          Data.Either.Left
-            Symantic.Parser.Machine.Generate.ParsingError
-              { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
-                Symantic.Parser.Machine.Generate.parsingErrorException = exn,
-                Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
-                  if readMore farInp
-                    then
-                      GHC.Maybe.Just
-                        ( let (#
-                                c,
-                                _
-                                #) = readNext farInp
-                           in c
-                        )
-                    else GHC.Maybe.Nothing,
-                Symantic.Parser.Machine.Generate.parsingErrorExpecting = farExp
-              }
-   in let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
-       in let
-           in let join = \farInp farExp v (!inp) ->
-                    let _ = "resume"
-                     in finalRet
-                          farInp
-                          farExp
-                          ( let _ = "resume.genCode"
-                             in GHC.Show.show v
-                          )
-                          inp
-               in let _ = "catch ExceptionFailure"
-                   in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                            let _ = "catch.ko ExceptionFailure"
-                             in if ( \( Data.Text.Internal.Text
-                                          _
-                                          i
-                                          _
-                                        )
-                                      ( Data.Text.Internal.Text
-                                          _
-                                          j
-                                          _
-                                        ) -> i GHC.Classes.== j
-                                   )
-                                  init
-                                  failInp
-                                  then
-                                    let _ = "choicesBranch.then"
-                                     in let _ = "catch ExceptionFailure"
-                                         in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                                                  let _ = "catch.ko ExceptionFailure"
-                                                   in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                             in let readFail = catchHandler
-                                                 in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 failInp)
-                                                      then
-                                                        let !(#
-                                                               c,
-                                                               cs
-                                                               #) = readNext failInp
-                                                         in if (GHC.Classes.==) 'a' c
-                                                              then
-                                                                let readFail = readFail
-                                                                 in let !(#
-                                                                           c,
-                                                                           cs
-                                                                           #) = readNext cs
-                                                                     in if (GHC.Classes.==) 'b' c
-                                                                          then
-                                                                            let _ = "resume"
-                                                                             in join
-                                                                                  farInp
-                                                                                  farExp
-                                                                                  ( let _ = "resume.genCode"
-                                                                                     in (GHC.Types.:) 'a' ((GHC.Types.:) 'b' GHC.Types . [])
-                                                                                  )
-                                                                                  cs
-                                                                          else
-                                                                            let _ = "checkToken.else"
-                                                                             in let failExp =
-                                                                                      Data.Set.Internal.Bin
-                                                                                        1
-                                                                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                            ( case inputToken of
-                                                                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'b'
-                                                                                            )
-                                                                                        )
-                                                                                        Data.Set.Internal.Tip
-                                                                                        Data.Set.Internal.Tip
-                                                                                 in let (#
-                                                                                          farInp,
-                                                                                          farExp
-                                                                                          #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp cs of
-                                                                                            GHC.Types.LT ->
-                                                                                              (#
-                                                                                                cs,
-                                                                                                failExp
-                                                                                              #)
-                                                                                            GHC.Types.EQ ->
-                                                                                              (#
-                                                                                                farInp,
-                                                                                                failExp GHC.Base.<> farExp
-                                                                                              #)
-                                                                                            GHC.Types.GT ->
-                                                                                              (#
-                                                                                                farInp,
-                                                                                                farExp
-                                                                                              #)
-                                                                                     in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
-                                                              else
-                                                                let _ = "checkToken.else"
-                                                                 in let failExp =
-                                                                          Data.Set.Internal.Bin
-                                                                            1
-                                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                                ( case inputToken of
-                                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
-                                                                                )
-                                                                            )
-                                                                            Data.Set.Internal.Tip
-                                                                            Data.Set.Internal.Tip
-                                                                     in let (#
-                                                                              farInp,
-                                                                              farExp
-                                                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp failInp of
-                                                                                GHC.Types.LT ->
-                                                                                  (#
-                                                                                    failInp,
-                                                                                    failExp
-                                                                                  #)
-                                                                                GHC.Types.EQ ->
-                                                                                  (#
-                                                                                    farInp,
-                                                                                    failExp GHC.Base.<> farExp
-                                                                                  #)
-                                                                                GHC.Types.GT ->
-                                                                                  (#
-                                                                                    farInp,
-                                                                                    farExp
-                                                                                  #)
-                                                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                                      else
-                                                        let _ = "checkHorizon.else"
-                                                         in let failExp =
-                                                                  Data.Set.Internal.Bin
-                                                                    1
-                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                        ( case inputToken of
-                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
-                                                                        )
-                                                                    )
-                                                                    Data.Set.Internal.Tip
-                                                                    Data.Set.Internal.Tip
-                                                             in let (#
-                                                                      farInp,
-                                                                      farExp
-                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp failInp of
-                                                                        GHC.Types.LT ->
-                                                                          (#
-                                                                            failInp,
-                                                                            failExp
-                                                                          #)
-                                                                        GHC.Types.EQ ->
-                                                                          (#
-                                                                            farInp,
-                                                                            failExp GHC.Base.<> farExp
-                                                                          #)
-                                                                        GHC.Types.GT ->
-                                                                          (#
-                                                                            farInp,
-                                                                            farExp
-                                                                          #)
-                                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                  else
-                                    let _ = "choicesBranch.else"
-                                     in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                       in let _ = "catch ExceptionFailure"
-                           in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                                    let _ = "catch.ko ExceptionFailure"
-                                     in catchHandler Symantic.Parser.Grammar.Combinators.ExceptionFailure init farInp farExp
-                               in let readFail = catchHandler
-                                   in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 init)
-                                        then
-                                          let !(# c, cs #) = readNext init
-                                           in if (GHC.Classes.==) 'a' c
-                                                then
-                                                  let readFail = readFail
-                                                   in let !(#
-                                                             c,
-                                                             cs
-                                                             #) = readNext cs
-                                                       in if (GHC.Classes.==) 'a' c
-                                                            then
-                                                              let _ = "resume"
-                                                               in join
-                                                                    init
-                                                                    Data.Set.Internal.empty
-                                                                    ( let _ = "resume.genCode"
-                                                                       in (GHC.Types.:) 'a' ((GHC.Types.:) 'a' GHC.Types . [])
-                                                                    )
-                                                                    cs
-                                                            else
-                                                              let _ = "checkToken.else"
-                                                               in let failExp =
-                                                                        Data.Set.Internal.Bin
-                                                                          1
-                                                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                              ( case inputToken of
-                                                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
-                                                                              )
-                                                                          )
-                                                                          Data.Set.Internal.Tip
-                                                                          Data.Set.Internal.Tip
-                                                                   in let (#
-                                                                            farInp,
-                                                                            farExp
-                                                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init cs of
-                                                                              GHC.Types.LT ->
-                                                                                (#
-                                                                                  cs,
-                                                                                  failExp
-                                                                                #)
-                                                                              GHC.Types.EQ ->
-                                                                                (#
-                                                                                  init,
-                                                                                  failExp GHC.Base.<> Data.Set.Internal.empty
-                                                                                #)
-                                                                              GHC.Types.GT ->
-                                                                                (#
-                                                                                  init,
-                                                                                  Data.Set.Internal.empty
-                                                                                #)
-                                                                       in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
-                                                else
-                                                  let _ = "checkToken.else"
-                                                   in let failExp =
-                                                            Data.Set.Internal.Bin
-                                                              1
-                                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                  ( case inputToken of
-                                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
-                                                                  )
-                                                              )
-                                                              Data.Set.Internal.Tip
-                                                              Data.Set.Internal.Tip
-                                                       in let (#
-                                                                farInp,
-                                                                farExp
-                                                                #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init init of
-                                                                  GHC.Types.LT ->
-                                                                    (#
-                                                                      init,
-                                                                      failExp
-                                                                    #)
-                                                                  GHC.Types.EQ ->
-                                                                    (#
-                                                                      init,
-                                                                      failExp GHC.Base.<> Data.Set.Internal.empty
-                                                                    #)
-                                                                  GHC.Types.GT ->
-                                                                    (#
-                                                                      init,
-                                                                      Data.Set.Internal.empty
-                                                                    #)
-                                                           in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure init farInp farExp
-                                        else
-                                          let _ = "checkHorizon.else"
-                                           in let failExp =
-                                                    Data.Set.Internal.Bin
-                                                      1
-                                                      ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                          ( case inputToken of
-                                                              (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
-                                                          )
-                                                      )
-                                                      Data.Set.Internal.Tip
-                                                      Data.Set.Internal.Tip
-                                               in let (#
-                                                        farInp,
-                                                        farExp
-                                                        #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init init of
-                                                          GHC.Types.LT ->
-                                                            (#
-                                                              init,
-                                                              failExp
-                                                            #)
-                                                          GHC.Types.EQ ->
-                                                            (#
-                                                              init,
-                                                              failExp GHC.Base.<> Data.Set.Internal.empty
-                                                            #)
-                                                          GHC.Types.GT ->
-                                                            (#
-                                                              init,
-                                                              Data.Set.Internal.empty
-                                                            #)
-                                                   in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure init farInp farExp
diff --git a/test/Golden/Splice/G8.expected.txt b/test/Golden/Splice/G8.expected.txt
deleted file mode 100644
--- a/test/Golden/Splice/G8.expected.txt
+++ /dev/null
@@ -1,278 +0,0 @@
-\(input :: inp) ->
-  let !(#
-         init,
-         readMore,
-         readNext
-         #) =
-          let _ = "cursorOf"
-           in let next
-                    ( t@( Data.Text.Internal.Text
-                            arr
-                            off
-                            unconsumed
-                          )
-                      ) =
-                      let !( Data.Text.Unsafe.Iter
-                               c
-                               d
-                             ) = Data.Text.Unsafe.iter t 0
-                       in (#
-                            c,
-                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
-                          #)
-                  more
-                    ( Data.Text.Internal.Text
-                        _
-                        _
-                        unconsumed
-                      ) = unconsumed GHC.Classes.> 0
-               in (# input, more, next #)
-      finalRet = \_farInp _farExp v _inp -> Data.Either.Right v
-      finalRaise ::
-        forall b.
-        Symantic.Parser.Machine.Generate.Catcher
-          inp
-          b = \(!exn) _failInp (!farInp) (!farExp) ->
-          Data.Either.Left
-            Symantic.Parser.Machine.Generate.ParsingError
-              { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
-                Symantic.Parser.Machine.Generate.parsingErrorException = exn,
-                Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
-                  if readMore farInp
-                    then
-                      GHC.Maybe.Just
-                        ( let (#
-                                c,
-                                _
-                                #) = readNext farInp
-                           in c
-                        )
-                    else GHC.Maybe.Nothing,
-                Symantic.Parser.Machine.Generate.parsingErrorExpecting = farExp
-              }
-   in let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
-       in let name = \(!ok) (!inp) (!koByLabel) ->
-                let _ = "catch ExceptionFailure"
-                 in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                          let _ = "catch.ko ExceptionFailure"
-                           in if ( \( Data.Text.Internal.Text
-                                        _
-                                        i
-                                        _
-                                      )
-                                    ( Data.Text.Internal.Text
-                                        _
-                                        j
-                                        _
-                                      ) -> i GHC.Classes.== j
-                                 )
-                                inp
-                                failInp
-                                then
-                                  let _ = "choicesBranch.then"
-                                   in let _ = "resume"
-                                       in ok
-                                            farInp
-                                            farExp
-                                            ( let _ = "resume.genCode"
-                                               in \x -> x
-                                            )
-                                            failInp
-                                else
-                                  let _ = "choicesBranch.else"
-                                   in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure koByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                     in let readFail = catchHandler
-                         in if readMore inp
-                              then
-                                let !(#
-                                       c,
-                                       cs
-                                       #) = readNext inp
-                                 in if (GHC.Classes.==) 'r' c
-                                      then
-                                        name
-                                          ( let _ = "suspend"
-                                             in \farInp farExp v (!inp) ->
-                                                  let _ = "resume"
-                                                   in ok
-                                                        farInp
-                                                        farExp
-                                                        ( let _ = "resume.genCode"
-                                                           in \x -> (GHC.Types.:) 'r' (v x)
-                                                        )
-                                                        inp
-                                          )
-                                          cs
-                                          (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
-                                      else
-                                        let _ = "checkToken.else"
-                                         in let failExp =
-                                                  Data.Set.Internal.Bin
-                                                    1
-                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                        ( case inputToken of
-                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'r'
-                                                        )
-                                                    )
-                                                    Data.Set.Internal.Tip
-                                                    Data.Set.Internal.Tip
-                                             in let (#
-                                                      farInp,
-                                                      farExp
-                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                        GHC.Types.LT ->
-                                                          (#
-                                                            inp,
-                                                            failExp
-                                                          #)
-                                                        GHC.Types.EQ ->
-                                                          (#
-                                                            init,
-                                                            failExp GHC.Base.<> Data.Set.Internal.empty
-                                                          #)
-                                                        GHC.Types.GT ->
-                                                          (#
-                                                            init,
-                                                            Data.Set.Internal.empty
-                                                          #)
-                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                              else
-                                let _ = "checkHorizon.else"
-                                 in let failExp =
-                                          Data.Set.Internal.Bin
-                                            1
-                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                ( case inputToken of
-                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
-                                                )
-                                            )
-                                            Data.Set.Internal.Tip
-                                            Data.Set.Internal.Tip
-                                     in let (#
-                                              farInp,
-                                              farExp
-                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
-                                                GHC.Types.LT ->
-                                                  (#
-                                                    inp,
-                                                    failExp
-                                                  #)
-                                                GHC.Types.EQ ->
-                                                  (#
-                                                    init,
-                                                    failExp GHC.Base.<> Data.Set.Internal.empty
-                                                  #)
-                                                GHC.Types.GT ->
-                                                  (#
-                                                    init,
-                                                    Data.Set.Internal.empty
-                                                  #)
-                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-           in name
-                ( let _ = "suspend"
-                   in \farInp farExp v (!inp) ->
-                        let join = \farInp farExp v (!inp) ->
-                              let _ = "resume"
-                               in finalRet
-                                    farInp
-                                    farExp
-                                    ( let _ = "resume.genCode"
-                                       in GHC.Show.show (v GHC.Types . [])
-                                    )
-                                    inp
-                         in let _ = "catch ExceptionFailure"
-                             in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                                      let _ = "catch.ko ExceptionFailure"
-                                       in if ( \( Data.Text.Internal.Text
-                                                    _
-                                                    i
-                                                    _
-                                                  )
-                                                ( Data.Text.Internal.Text
-                                                    _
-                                                    j
-                                                    _
-                                                  ) -> i GHC.Classes.== j
-                                             )
-                                            inp
-                                            failInp
-                                            then
-                                              let _ = "choicesBranch.then"
-                                               in let failExp = Data.Set.Internal.Bin 1 (Symantic.Parser.Grammar.Combinators.SomeFailure Symantic.Parser.Grammar.Combinators.FailureEnd) Data.Set.Internal.Tip Data.Set.Internal.Tip
-                                                   in let (#
-                                                            farInp,
-                                                            farExp
-                                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp failInp of
-                                                              GHC.Types.LT ->
-                                                                (#
-                                                                  failInp,
-                                                                  failExp
-                                                                #)
-                                                              GHC.Types.EQ ->
-                                                                (#
-                                                                  farInp,
-                                                                  failExp GHC.Base.<> farExp
-                                                                #)
-                                                              GHC.Types.GT ->
-                                                                (#
-                                                                  farInp,
-                                                                  farExp
-                                                                #)
-                                                       in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                            else
-                                              let _ = "choicesBranch.else"
-                                               in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                 in let _ = "catch ExceptionFailure"
-                                     in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                                              let _ = "catch.ko ExceptionFailure"
-                                               in let _ = "resume"
-                                                   in join
-                                                        farInp
-                                                        farExp
-                                                        ( let _ = "resume.genCode"
-                                                           in GHC.Tuple . ()
-                                                        )
-                                                        inp
-                                         in let readFail = catchHandler
-                                             in if readMore inp
-                                                  then
-                                                    let !(#
-                                                           c,
-                                                           cs
-                                                           #) = readNext inp
-                                                     in catchHandler Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                                                  else
-                                                    let _ = "checkHorizon.else"
-                                                     in let failExp =
-                                                              Data.Set.Internal.Bin
-                                                                1
-                                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                                    ( case inputToken of
-                                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
-                                                                    )
-                                                                )
-                                                                Data.Set.Internal.Tip
-                                                                Data.Set.Internal.Tip
-                                                         in let (#
-                                                                  farInp,
-                                                                  farExp
-                                                                  #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
-                                                                    GHC.Types.LT ->
-                                                                      (#
-                                                                        inp,
-                                                                        failExp
-                                                                      #)
-                                                                    GHC.Types.EQ ->
-                                                                      (#
-                                                                        farInp,
-                                                                        failExp GHC.Base.<> farExp
-                                                                      #)
-                                                                    GHC.Types.GT ->
-                                                                      (#
-                                                                        farInp,
-                                                                        farExp
-                                                                      #)
-                                                             in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
-                )
-                init
-                Data.Map.Internal.Tip
diff --git a/test/Golden/Splice/G9.expected.txt b/test/Golden/Splice/G9.expected.txt
deleted file mode 100644
--- a/test/Golden/Splice/G9.expected.txt
+++ /dev/null
@@ -1,153 +0,0 @@
-\(input :: inp) ->
-  let !(#
-         init,
-         readMore,
-         readNext
-         #) =
-          let _ = "cursorOf"
-           in let next
-                    ( t@( Data.Text.Internal.Text
-                            arr
-                            off
-                            unconsumed
-                          )
-                      ) =
-                      let !( Data.Text.Unsafe.Iter
-                               c
-                               d
-                             ) = Data.Text.Unsafe.iter t 0
-                       in (#
-                            c,
-                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
-                          #)
-                  more
-                    ( Data.Text.Internal.Text
-                        _
-                        _
-                        unconsumed
-                      ) = unconsumed GHC.Classes.> 0
-               in (# input, more, next #)
-      finalRet = \_farInp _farExp v _inp -> Data.Either.Right v
-      finalRaise ::
-        forall b.
-        Symantic.Parser.Machine.Generate.Catcher
-          inp
-          b = \(!exn) _failInp (!farInp) (!farExp) ->
-          Data.Either.Left
-            Symantic.Parser.Machine.Generate.ParsingError
-              { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
-                Symantic.Parser.Machine.Generate.parsingErrorException = exn,
-                Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
-                  if readMore farInp
-                    then
-                      GHC.Maybe.Just
-                        ( let (#
-                                c,
-                                _
-                                #) = readNext farInp
-                           in c
-                        )
-                    else GHC.Maybe.Nothing,
-                Symantic.Parser.Machine.Generate.parsingErrorExpecting = farExp
-              }
-   in let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
-       in let
-           in let join = \farInp farExp v (!inp) ->
-                    let _ = "resume"
-                     in finalRet
-                          farInp
-                          farExp
-                          ( let _ = "resume.genCode"
-                             in GHC.Show.show v
-                          )
-                          inp
-               in let _ = "catch ExceptionFailure"
-                   in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                            let _ = "catch.ko ExceptionFailure"
-                             in if ( \( Data.Text.Internal.Text
-                                          _
-                                          i
-                                          _
-                                        )
-                                      ( Data.Text.Internal.Text
-                                          _
-                                          j
-                                          _
-                                        ) -> i GHC.Classes.== j
-                                   )
-                                  init
-                                  failInp
-                                  then
-                                    let _ = "choicesBranch.then"
-                                     in let failExp = Data.Set.Internal.Bin 1 (Symantic.Parser.Grammar.Combinators.SomeFailure Symantic.Parser.Grammar.Combinators.FailureEnd) Data.Set.Internal.Tip Data.Set.Internal.Tip
-                                         in let (#
-                                                  farInp,
-                                                  farExp
-                                                  #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp failInp of
-                                                    GHC.Types.LT ->
-                                                      (#
-                                                        failInp,
-                                                        failExp
-                                                      #)
-                                                    GHC.Types.EQ ->
-                                                      (#
-                                                        farInp,
-                                                        failExp GHC.Base.<> farExp
-                                                      #)
-                                                    GHC.Types.GT ->
-                                                      (#
-                                                        farInp,
-                                                        farExp
-                                                      #)
-                                             in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                                  else
-                                    let _ = "choicesBranch.else"
-                                     in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
-                       in let _ = "catch ExceptionFailure"
-                           in let catchHandler (!_exn) (!failInp) (!farInp) (!farExp) =
-                                    let _ = "catch.ko ExceptionFailure"
-                                     in let _ = "resume"
-                                         in join
-                                              farInp
-                                              farExp
-                                              ( let _ = "resume.genCode"
-                                                 in GHC.Tuple . ()
-                                              )
-                                              init
-                               in let readFail = catchHandler
-                                   in if readMore init
-                                        then
-                                          let !(# c, cs #) = readNext init
-                                           in catchHandler Symantic.Parser.Grammar.Combinators.ExceptionFailure init init Data.Set.Internal.empty
-                                        else
-                                          let _ = "checkHorizon.else"
-                                           in let failExp =
-                                                    Data.Set.Internal.Bin
-                                                      1
-                                                      ( Symantic.Parser.Grammar.Combinators.SomeFailure
-                                                          ( case inputToken of
-                                                              (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
-                                                          )
-                                                      )
-                                                      Data.Set.Internal.Tip
-                                                      Data.Set.Internal.Tip
-                                               in let (#
-                                                        farInp,
-                                                        farExp
-                                                        #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init init of
-                                                          GHC.Types.LT ->
-                                                            (#
-                                                              init,
-                                                              failExp
-                                                            #)
-                                                          GHC.Types.EQ ->
-                                                            (#
-                                                              init,
-                                                              failExp GHC.Base.<> Data.Set.Internal.empty
-                                                            #)
-                                                          GHC.Types.GT ->
-                                                            (#
-                                                              init,
-                                                              Data.Set.Internal.empty
-                                                            #)
-                                                   in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure init farInp farExp
diff --git a/test/Golden/Utils.hs b/test/Golden/Utils.hs
deleted file mode 100644
--- a/test/Golden/Utils.hs
+++ /dev/null
@@ -1,36 +0,0 @@
-module Golden.Utils where
-
-import Control.Monad (Monad(..))
-import Data.Either (Either(..))
-import Data.Function (($))
-import Data.Semigroup (Semigroup(..))
-import Data.String (String)
-import System.IO (IO, FilePath)
-import System.IO.Unsafe (unsafePerformIO)
-import qualified Data.ByteString.Lazy as BSL
-import qualified Data.IORef as IORef
-
-import qualified Data.Text.Lazy as TL
-import qualified Data.Text.Lazy.Encoding as TL
-import qualified Language.Haskell.TH.Syntax as TH
-import Paths_symantic_parser
-
-getGoldenDir :: FilePath -> FilePath
-getGoldenDir p = unsafePerformIO $ getDataFileName $ "test/Golden/" <> p
-
-goldenDiff :: FilePath -> FilePath -> [String]
-goldenDiff ref new = ["diff", "-u", "-w", "-B", ref, new]
-
--- | Resetting 'TH.counter' makes 'makeLetName' deterministic,
--- except when GHC or executable flags change, like profiling
--- or even --accept unfortunately,
--- in those case the 'goldensMachine' tests may fail
--- due to a different numbering of the 'def' and 'ref' combinators.
--- Hence 'ShowLetName' is used with 'False'.
-resetTHNameCounter :: IO ()
-resetTHNameCounter = IORef.writeIORef TH.counter 0
-
-unLeft :: Either String BSL.ByteString -> IO BSL.ByteString
-unLeft lr = case lr of
-  Left err -> return $ TL.encodeUtf8 $ TL.pack err
-  Right a  -> return a
diff --git a/test/Grammar.hs b/test/Grammar.hs
deleted file mode 100644
--- a/test/Grammar.hs
+++ /dev/null
@@ -1,54 +0,0 @@
-{-# LANGUAGE FlexibleContexts #-}
-{-# LANGUAGE NoMonomorphismRestriction #-}
-{-# LANGUAGE TypeApplications #-}
-{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TemplateHaskell #-}
-{-# OPTIONS_GHC -Wno-missing-signatures #-}
-module Grammar where
-import Data.Char (Char)
-import Data.String (String)
-import Text.Show (Show(..))
-import qualified Data.Functor as Functor
-import qualified Parsers.Nandlang
-import qualified Parsers.Brainfuck.SymanticParser.Grammar
-
-import Symantic.Parser
-
-rawGrammars :: Grammarable Char repr => [repr String]
-rawGrammars =
-  [ production show [||show||] <$> g1
-  , production show [||show||] <$> g2
-  , production show [||show||] <$> g3
-  , production show [||show||] <$> g4
-  , production show [||show||] <$> g5
-  , production show [||show||] <$> g6
-  , production show [||show||] <$> g7
-  , production show [||show||] <$> g8
-  , production show [||show||] <$> g9
-  , production show [||show||] <$> g10
-  , production show [||show||] <$> g11
-  , production show [||show||] <$> g12
-  , production show [||show||] <$> g13
-  , production show [||show||] <$> g14
-  , production show [||show||] <$> g15
-  , production show [||show||] <$> g16
-  ]
-grammars :: Grammarable Char repr => [repr String]
-grammars = observeSharing Functor.<$> rawGrammars
-
-g1 = char 'a'
-g2 = string "abc"
-g3 = many (char 'a')
-g4 = some (string "abcd")
-g5 = some (string "abcd") <* eof
-g6 = traverse char "aa" <|> traverse char "ab"
-g7 = string "aa" <|> string "ab"
-g8 = many (char 'r') <* eof
-g9 = eof
-g10 = char 'a' <|> char 'b'
-g11 = many (char 'a') <* char 'b'
-g12 = many (oneOf ['a', 'b', 'c', 'd']) <* eof
-g13 = Parsers.Brainfuck.SymanticParser.Grammar.grammar @Char @_
-g14 = Parsers.Nandlang.grammar
-g15 = (char 'a' <|> char 'b') <* char 'c'
-g16 = (char 'a' <|> char 'b' <|> char 'c') <* char 'd'
diff --git a/test/Main.hs b/test/Main.hs
deleted file mode 100644
--- a/test/Main.hs
+++ /dev/null
@@ -1,15 +0,0 @@
-module Main where
-
-import System.IO (IO)
-import Test.Tasty
-import Golden
---import HUnit
-
-main :: IO ()
-main = do
-  defaultMain (
-    testGroup ""
-      [ Golden.goldens
-      --, hunits
-      ]
-    )
diff --git a/tests/Golden.hs b/tests/Golden.hs
new file mode 100644
--- /dev/null
+++ b/tests/Golden.hs
@@ -0,0 +1,16 @@
+module Golden where
+
+import Test.Tasty
+
+import qualified Golden.Grammar
+import qualified Golden.Machine
+import qualified Golden.Parser
+import qualified Golden.Splice
+
+goldens :: TestTree
+goldens = testGroup "Golden"
+  [ Golden.Grammar.goldens
+  , Golden.Machine.goldens
+  , Golden.Parser.goldens
+  , Golden.Splice.goldens
+  ]
diff --git a/tests/Golden/Grammar.hs b/tests/Golden/Grammar.hs
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar.hs
@@ -0,0 +1,38 @@
+{-# LANGUAGE DataKinds #-} -- For using P.viewGrammar
+{-# LANGUAGE Rank2Types #-}
+{-# LANGUAGE TypeApplications #-}
+module Golden.Grammar where
+
+import Data.Bool (Bool(..))
+import Control.Monad (Monad(..))
+import Data.Function (($))
+import Data.Semigroup (Semigroup(..))
+import Data.String (IsString(..))
+import Test.Tasty
+import Test.Tasty.Golden
+import Text.Show (Show(..))
+import Data.Int (Int)
+import qualified Data.List as List
+
+import Golden.Utils
+import qualified Symantic.Parser as P
+import qualified Grammar
+
+goldens :: TestTree
+goldens = testGroup "Grammar" $
+  [ testGroup "ViewGrammar" $
+    (\f -> List.zipWith f Grammar.grammars [1::Int ..]) $ \g gNum ->
+    let grammarFile = getGoldenDir $ "Grammar/ViewGrammar/G"<>show gNum<>".expected.txt" in
+    goldenVsStringDiff ("G"<>show gNum) goldenDiff grammarFile $ do
+      resetTHNameCounter
+      return $ fromString $ show $
+        P.viewGrammar @'False g
+  , testGroup "OptimizeGrammar" $
+    (\f -> List.zipWith f Grammar.grammars [1::Int ..]) $ \g gNum ->
+    let grammarFile = getGoldenDir $ "Grammar/OptimizeGrammar/G"<>show gNum<>".expected.txt" in
+    goldenVsStringDiff ("G"<>show gNum) goldenDiff grammarFile $ do
+      resetTHNameCounter
+      return $ fromString $ show $
+        P.viewGrammar @'False $
+        P.optimizeGrammar g
+  ]
diff --git a/tests/Golden/Grammar/OptimizeGrammar/G1.expected.txt b/tests/Golden/Grammar/OptimizeGrammar/G1.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/OptimizeGrammar/G1.expected.txt
@@ -0,0 +1,4 @@
+lets
+` <*>
+  + pure (\x_0 -> GHC.Show.show 'a')
+  ` satisfy ((GHC.Classes.==) 'a')
diff --git a/tests/Golden/Grammar/OptimizeGrammar/G10.expected.txt b/tests/Golden/Grammar/OptimizeGrammar/G10.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/OptimizeGrammar/G10.expected.txt
@@ -0,0 +1,10 @@
+lets
+` <*>
+  + pure GHC.Show.show
+  ` <|>
+    + <*>
+    | + pure (\x_0 -> 'a')
+    | ` satisfy ((GHC.Classes.==) 'a')
+    ` <*>
+      + pure (\x_0 -> 'b')
+      ` satisfy ((GHC.Classes.==) 'b')
diff --git a/tests/Golden/Grammar/OptimizeGrammar/G11.expected.txt b/tests/Golden/Grammar/OptimizeGrammar/G11.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/OptimizeGrammar/G11.expected.txt
@@ -0,0 +1,10 @@
+lets
+` <*>
+  + <*>
+  | + pure (\x_0 -> \x_1 -> GHC.Show.show x_0)
+  | ` chainPre
+  |   + <*>
+  |   | + pure (\x_0 -> (GHC.Types.:) 'a')
+  |   | ` satisfy ((GHC.Classes.==) 'a')
+  |   ` pure GHC.Types.[]
+  ` satisfy ((GHC.Classes.==) 'b')
diff --git a/tests/Golden/Grammar/OptimizeGrammar/G12.expected.txt b/tests/Golden/Grammar/OptimizeGrammar/G12.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/OptimizeGrammar/G12.expected.txt
@@ -0,0 +1,10 @@
+lets
+` <*>
+  + <*>
+  | + pure (\x_0 -> \x_1 -> GHC.Show.show x_0)
+  | ` chainPre
+  |   + <*>
+  |   | + pure (GHC.Types.:)
+  |   | ` satisfy (\t_0 -> ('a' GHC.Classes.== t_0) GHC.Classes.|| (('b' GHC.Classes.== t_0) GHC.Classes.|| (('c' GHC.Classes.== t_0) GHC.Classes.|| (('d' GHC.Classes.== t_0) GHC.Classes.|| GHC.Types.False))))
+  |   ` pure GHC.Types.[]
+  ` eof
diff --git a/tests/Golden/Grammar/OptimizeGrammar/G13.expected.txt b/tests/Golden/Grammar/OptimizeGrammar/G13.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/OptimizeGrammar/G13.expected.txt
@@ -0,0 +1,61 @@
+lets
++ let name
+| ` <*>
+|   + pure (\x_0 -> GHC.Tuple.())
+|   ` chainPost
+|     + pure GHC.Tuple.()
+|     ` <*>
+|       + pure (\x_0 -> \x_1 -> x_1)
+|       ` satisfy (\c_0 -> GHC.Classes.not (('<' GHC.Classes.== c_0) GHC.Classes.|| (('>' GHC.Classes.== c_0) GHC.Classes.|| (('+' GHC.Classes.== c_0) GHC.Classes.|| (('-' GHC.Classes.== c_0) GHC.Classes.|| ((',' GHC.Classes.== c_0) GHC.Classes.|| (('.' GHC.Classes.== c_0) GHC.Classes.|| (('[' GHC.Classes.== c_0) GHC.Classes.|| ((']' GHC.Classes.== c_0) GHC.Classes.|| GHC.Types.False)))))))))
++ let name
+| ` chainPre
+|   + <*>
+|   | + <*>
+|   | | + pure (\x_0 -> \x_1 -> (GHC.Types.:) x_0)
+|   | | ` conditional
+|   | |   + condition
+|   | |   | ` look
+|   | |   |   ` satisfy (\x_0 -> GHC.Types.True)
+|   | |   + default
+|   | |   | ` failure
+|   | |   + branch (\x_0 -> (\x_1 -> \x_2 -> (GHC.Classes.==) x_1 x_2) '<' x_0)
+|   | |   | ` <*>
+|   | |   |   + pure (\x_0 -> Parsers.Brainfuck.Types.Backward)
+|   | |   |   ` satisfy (\x_0 -> GHC.Types.True)
+|   | |   + branch (\x_0 -> (\x_1 -> \x_2 -> (GHC.Classes.==) x_1 x_2) '>' x_0)
+|   | |   | ` <*>
+|   | |   |   + pure (\x_0 -> Parsers.Brainfuck.Types.Forward)
+|   | |   |   ` satisfy (\x_0 -> GHC.Types.True)
+|   | |   + branch (\x_0 -> (\x_1 -> \x_2 -> (GHC.Classes.==) x_1 x_2) '+' x_0)
+|   | |   | ` <*>
+|   | |   |   + pure (\x_0 -> Parsers.Brainfuck.Types.Increment)
+|   | |   |   ` satisfy (\x_0 -> GHC.Types.True)
+|   | |   + branch (\x_0 -> (\x_1 -> \x_2 -> (GHC.Classes.==) x_1 x_2) '-' x_0)
+|   | |   | ` <*>
+|   | |   |   + pure (\x_0 -> Parsers.Brainfuck.Types.Decrement)
+|   | |   |   ` satisfy (\x_0 -> GHC.Types.True)
+|   | |   + branch (\x_0 -> (\x_1 -> \x_2 -> (GHC.Classes.==) x_1 x_2) ',' x_0)
+|   | |   | ` <*>
+|   | |   |   + pure (\x_0 -> Parsers.Brainfuck.Types.Input)
+|   | |   |   ` satisfy (\x_0 -> GHC.Types.True)
+|   | |   + branch (\x_0 -> (\x_1 -> \x_2 -> (GHC.Classes.==) x_1 x_2) '.' x_0)
+|   | |   | ` <*>
+|   | |   |   + pure (\x_0 -> Parsers.Brainfuck.Types.Output)
+|   | |   |   ` satisfy (\x_0 -> GHC.Types.True)
+|   | |   ` branch (\x_0 -> (\x_1 -> \x_2 -> (GHC.Classes.==) x_1 x_2) '[' x_0)
+|   | |     ` <*>
+|   | |       + <*>
+|   | |       | + <*>
+|   | |       | | + <*>
+|   | |       | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> Parsers.Brainfuck.Types.Loop x_2)
+|   | |       | | | ` satisfy (\x_0 -> GHC.Types.True)
+|   | |       | | ` ref name
+|   | |       | ` rec name
+|   | |       ` satisfy ((GHC.Classes.==) ']')
+|   | ` ref name
+|   ` pure GHC.Types.[]
+` <*>
+  + <*>
+  | + pure (\x_0 -> \x_1 -> GHC.Show.show x_1)
+  | ` ref name
+  ` ref name
diff --git a/tests/Golden/Grammar/OptimizeGrammar/G14.expected.txt b/tests/Golden/Grammar/OptimizeGrammar/G14.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/OptimizeGrammar/G14.expected.txt
@@ -0,0 +1,354 @@
+lets
++ let name
+| ` <*>
+|   + <*>
+|   | + pure (\x_0 -> \x_1 -> x_1)
+|   | ` ref name
+|   ` <|>
+|     + <*>
+|     | + pure (\x_0 -> GHC.Tuple.())
+|     | ` 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_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 -> 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 -> 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 ((GHC.Classes.==) '(')
+|   ` ref name
++ let name
+| ` <*>
+|   + <*>
+|   | + pure (\x_0 -> \x_1 -> ')')
+|   | ` satisfy ((GHC.Classes.==) ')')
+|   ` ref name
++ let name
+| ` <*>
+|   + <*>
+|   | + pure (\x_0 -> \x_1 -> ',')
+|   | ` satisfy ((GHC.Classes.==) ',')
+|   ` ref name
++ let name
+| ` <*>
+|   + <*>
+|   | + pure (\x_0 -> \x_1 -> ';')
+|   | ` satisfy ((GHC.Classes.==) ';')
+|   ` ref name
++ let name
+| ` <*>
+|   + <*>
+|   | + pure (\x_0 -> \x_1 -> x_1)
+|   | ` satisfy GHC.Unicode.isSpace
+|   ` ref name
++ let name
+| ` <*>
+|   + <*>
+|   | + pure (\x_0 -> \x_1 -> x_1)
+|   | ` try
+|   |   ` <*>
+|   |     + <*>
+|   |     | + <*>
+|   |     | | + 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
+| ` <|>
+|   + <*>
+|   | + <*>
+|   | | + pure (\x_0 -> \x_1 -> x_1)
+|   | | ` <|>
+|   | |   + <*>
+|   | |   | + pure (\x_0 -> '0')
+|   | |   | ` satisfy ((GHC.Classes.==) '0')
+|   | |   ` <*>
+|   | |     + pure (\x_0 -> '1')
+|   | |     ` satisfy ((GHC.Classes.==) '1')
+|   | ` ref name
+|   ` <|>
+|     + <*>
+|     | + <*>
+|     | | + <*>
+|     | | | + <*>
+|     | | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> x_1)
+|     | | | | ` satisfy ((GHC.Classes.==) '\'')
+|     | | | ` <|>
+|     | | |   + <*>
+|     | | |   | + <*>
+|     | | |   | | + pure (\x_0 -> \x_1 -> x_1)
+|     | | |   | | ` satisfy Parsers.Nandlang.nandStringLetter
+|     | | |   | ` ref name
+|     | | |   ` <*>
+|     | | |     + <*>
+|     | | |     | + <*>
+|     | | |     | | + pure (\x_0 -> \x_1 -> \x_2 -> x_2)
+|     | | |     | | ` 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 name
+|       ` <|>
+|         + <*>
+|         | + pure (\x_0 -> GHC.Tuple.())
+|         | ` <|>
+|         |   + <*>
+|         |   | + <*>
+|         |   | | + <*>
+|         |   | | | + pure (\x_0 -> \x_1 -> \x_2 -> x_1)
+|         |   | | | ` ref name
+|         |   | | ` <|>
+|         |   | |   + <*>
+|         |   | |   | + <*>
+|         |   | |   | | + <*>
+|         |   | |   | | | + 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 -> GHC.Tuple.())
+|   | | | ` 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
++ let name
+| ` pure (\x_0 -> \x_1 -> x_1)
++ 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 -> 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
diff --git a/tests/Golden/Grammar/OptimizeGrammar/G15.expected.txt b/tests/Golden/Grammar/OptimizeGrammar/G15.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/OptimizeGrammar/G15.expected.txt
@@ -0,0 +1,12 @@
+lets
+` <*>
+  + <*>
+  | + pure (\x_0 -> \x_1 -> GHC.Show.show x_0)
+  | ` <|>
+  |   + <*>
+  |   | + pure (\x_0 -> 'a')
+  |   | ` satisfy ((GHC.Classes.==) 'a')
+  |   ` <*>
+  |     + pure (\x_0 -> 'b')
+  |     ` satisfy ((GHC.Classes.==) 'b')
+  ` satisfy ((GHC.Classes.==) 'c')
diff --git a/tests/Golden/Grammar/OptimizeGrammar/G16.expected.txt b/tests/Golden/Grammar/OptimizeGrammar/G16.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/OptimizeGrammar/G16.expected.txt
@@ -0,0 +1,16 @@
+lets
+` <*>
+  + <*>
+  | + pure (\x_0 -> \x_1 -> GHC.Show.show x_0)
+  | ` <|>
+  |   + <*>
+  |   | + pure (\x_0 -> 'a')
+  |   | ` satisfy ((GHC.Classes.==) 'a')
+  |   ` <|>
+  |     + <*>
+  |     | + pure (\x_0 -> 'b')
+  |     | ` satisfy ((GHC.Classes.==) 'b')
+  |     ` <*>
+  |       + pure (\x_0 -> 'c')
+  |       ` satisfy ((GHC.Classes.==) 'c')
+  ` satisfy ((GHC.Classes.==) 'd')
diff --git a/tests/Golden/Grammar/OptimizeGrammar/G17.expected.txt b/tests/Golden/Grammar/OptimizeGrammar/G17.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/OptimizeGrammar/G17.expected.txt
@@ -0,0 +1,10 @@
+lets
+` <*>
+  + pure GHC.Show.show
+  ` new reg_1
+    + satisfy (\x_0 -> GHC.Types.True)
+    ` <*>
+      + <*>
+      | + pure GHC.Tuple.(,)
+      | ` get reg_1
+      ` get reg_1
diff --git a/tests/Golden/Grammar/OptimizeGrammar/G18.expected.txt b/tests/Golden/Grammar/OptimizeGrammar/G18.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/OptimizeGrammar/G18.expected.txt
@@ -0,0 +1,18 @@
+lets
+` <*>
+  + pure GHC.Show.show
+  ` <|>
+    + try
+    | ` <*>
+    |   + <*>
+    |   | + <*>
+    |   | | + pure (\x_0 -> \x_1 -> \x_2 -> (GHC.Types.:) 'a' ((GHC.Types.:) 'b' ((GHC.Types.:) 'c' GHC.Types.[])))
+    |   | | ` satisfy ((GHC.Classes.==) 'a')
+    |   | ` satisfy ((GHC.Classes.==) 'b')
+    |   ` satisfy ((GHC.Classes.==) 'c')
+    ` try
+      ` <*>
+        + <*>
+        | + pure (\x_0 -> \x_1 -> (GHC.Types.:) 'd' ((GHC.Types.:) 'e' GHC.Types.[]))
+        | ` satisfy ((GHC.Classes.==) 'd')
+        ` satisfy ((GHC.Classes.==) 'e')
diff --git a/tests/Golden/Grammar/OptimizeGrammar/G19.expected.txt b/tests/Golden/Grammar/OptimizeGrammar/G19.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/OptimizeGrammar/G19.expected.txt
@@ -0,0 +1,29 @@
+lets
+` <*>
+  + pure GHC.Show.show
+  ` <|>
+    + try
+    | ` <*>
+    |   + <*>
+    |   | + <*>
+    |   | | + pure (\x_0 -> \x_1 -> \x_2 -> (GHC.Types.:) 'a' ((GHC.Types.:) 'b' ((GHC.Types.:) 'c' GHC.Types.[])))
+    |   | | ` satisfy ((GHC.Classes.==) 'a')
+    |   | ` satisfy ((GHC.Classes.==) 'b')
+    |   ` satisfy ((GHC.Classes.==) 'c')
+    ` <|>
+      + try
+      | ` <*>
+      |   + <*>
+      |   | + pure (\x_0 -> \x_1 -> (GHC.Types.:) 'd' ((GHC.Types.:) 'e' GHC.Types.[]))
+      |   | ` satisfy ((GHC.Classes.==) 'd')
+      |   ` satisfy ((GHC.Classes.==) 'e')
+      ` try
+        ` <*>
+          + <*>
+          | + <*>
+          | | + <*>
+          | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> (GHC.Types.:) 'f' ((GHC.Types.:) 'g' ((GHC.Types.:) 'h' ((GHC.Types.:) 'i' GHC.Types.[]))))
+          | | | ` satisfy ((GHC.Classes.==) 'f')
+          | | ` satisfy ((GHC.Classes.==) 'g')
+          | ` satisfy ((GHC.Classes.==) 'h')
+          ` satisfy ((GHC.Classes.==) 'i')
diff --git a/tests/Golden/Grammar/OptimizeGrammar/G2.expected.txt b/tests/Golden/Grammar/OptimizeGrammar/G2.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/OptimizeGrammar/G2.expected.txt
@@ -0,0 +1,11 @@
+lets
+` <*>
+  + pure GHC.Show.show
+  ` try
+    ` <*>
+      + <*>
+      | + <*>
+      | | + pure (\x_0 -> \x_1 -> \x_2 -> (GHC.Types.:) 'a' ((GHC.Types.:) 'b' ((GHC.Types.:) 'c' GHC.Types.[])))
+      | | ` satisfy ((GHC.Classes.==) 'a')
+      | ` satisfy ((GHC.Classes.==) 'b')
+      ` satisfy ((GHC.Classes.==) 'c')
diff --git a/tests/Golden/Grammar/OptimizeGrammar/G20.expected.txt b/tests/Golden/Grammar/OptimizeGrammar/G20.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/OptimizeGrammar/G20.expected.txt
@@ -0,0 +1,23 @@
+lets
+` <*>
+  + <*>
+  | + pure (\x_0 -> \x_1 -> GHC.Show.show GHC.Tuple.())
+  | ` <|>
+  |   + try
+  |   | ` <*>
+  |   |   + <*>
+  |   |   | + <*>
+  |   |   | | + pure (\x_0 -> \x_1 -> \x_2 -> (GHC.Types.:) 'a' ((GHC.Types.:) 'b' ((GHC.Types.:) 'c' GHC.Types.[])))
+  |   |   | | ` satisfy ((GHC.Classes.==) 'a')
+  |   |   | ` satisfy ((GHC.Classes.==) 'b')
+  |   |   ` satisfy ((GHC.Classes.==) 'c')
+  |   ` try
+  |     ` pure GHC.Types.[]
+  ` try
+    ` <*>
+      + <*>
+      | + <*>
+      | | + pure (\x_0 -> \x_1 -> \x_2 -> (GHC.Types.:) 'd' ((GHC.Types.:) 'e' ((GHC.Types.:) 'f' GHC.Types.[])))
+      | | ` satisfy ((GHC.Classes.==) 'd')
+      | ` satisfy ((GHC.Classes.==) 'e')
+      ` satisfy ((GHC.Classes.==) 'f')
diff --git a/tests/Golden/Grammar/OptimizeGrammar/G3.expected.txt b/tests/Golden/Grammar/OptimizeGrammar/G3.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/OptimizeGrammar/G3.expected.txt
@@ -0,0 +1,8 @@
+lets
+` <*>
+  + pure GHC.Show.show
+  ` chainPre
+    + <*>
+    | + pure (\x_0 -> (GHC.Types.:) 'a')
+    | ` satisfy ((GHC.Classes.==) 'a')
+    ` pure GHC.Types.[]
diff --git a/tests/Golden/Grammar/OptimizeGrammar/G4.expected.txt b/tests/Golden/Grammar/OptimizeGrammar/G4.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/OptimizeGrammar/G4.expected.txt
@@ -0,0 +1,21 @@
+lets
++ let name
+| ` try
+|   ` <*>
+|     + <*>
+|     | + <*>
+|     | | + <*>
+|     | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> (GHC.Types.:) 'a' ((GHC.Types.:) 'b' ((GHC.Types.:) 'c' ((GHC.Types.:) 'd' GHC.Types.[]))))
+|     | | | ` satisfy ((GHC.Classes.==) 'a')
+|     | | ` satisfy ((GHC.Classes.==) 'b')
+|     | ` satisfy ((GHC.Classes.==) 'c')
+|     ` satisfy ((GHC.Classes.==) 'd')
+` <*>
+  + <*>
+  | + pure (\x_0 -> \x_1 -> GHC.Show.show ((GHC.Types.:) x_0 x_1))
+  | ` ref name
+  ` chainPre
+    + <*>
+    | + pure (GHC.Types.:)
+    | ` ref name
+    ` pure GHC.Types.[]
diff --git a/tests/Golden/Grammar/OptimizeGrammar/G5.expected.txt b/tests/Golden/Grammar/OptimizeGrammar/G5.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/OptimizeGrammar/G5.expected.txt
@@ -0,0 +1,23 @@
+lets
++ let name
+| ` try
+|   ` <*>
+|     + <*>
+|     | + <*>
+|     | | + <*>
+|     | | | + pure (\x_0 -> \x_1 -> \x_2 -> \x_3 -> (GHC.Types.:) 'a' ((GHC.Types.:) 'b' ((GHC.Types.:) 'c' ((GHC.Types.:) 'd' GHC.Types.[]))))
+|     | | | ` satisfy ((GHC.Classes.==) 'a')
+|     | | ` satisfy ((GHC.Classes.==) 'b')
+|     | ` satisfy ((GHC.Classes.==) 'c')
+|     ` satisfy ((GHC.Classes.==) 'd')
+` <*>
+  + <*>
+  | + <*>
+  | | + pure (\x_0 -> \x_1 -> \x_2 -> GHC.Show.show ((GHC.Types.:) x_0 x_1))
+  | | ` ref name
+  | ` chainPre
+  |   + <*>
+  |   | + pure (GHC.Types.:)
+  |   | ` ref name
+  |   ` pure GHC.Types.[]
+  ` eof
diff --git a/tests/Golden/Grammar/OptimizeGrammar/G6.expected.txt b/tests/Golden/Grammar/OptimizeGrammar/G6.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/OptimizeGrammar/G6.expected.txt
@@ -0,0 +1,14 @@
+lets
+` <*>
+  + pure GHC.Show.show
+  ` <|>
+    + <*>
+    | + <*>
+    | | + pure (\x_0 -> \x_1 -> (GHC.Types.:) 'a' ((GHC.Types.:) 'a' GHC.Types.[]))
+    | | ` satisfy ((GHC.Classes.==) 'a')
+    | ` satisfy ((GHC.Classes.==) 'a')
+    ` <*>
+      + <*>
+      | + pure (\x_0 -> \x_1 -> (GHC.Types.:) 'a' ((GHC.Types.:) 'b' GHC.Types.[]))
+      | ` satisfy ((GHC.Classes.==) 'a')
+      ` satisfy ((GHC.Classes.==) 'b')
diff --git a/tests/Golden/Grammar/OptimizeGrammar/G7.expected.txt b/tests/Golden/Grammar/OptimizeGrammar/G7.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/OptimizeGrammar/G7.expected.txt
@@ -0,0 +1,16 @@
+lets
+` <*>
+  + pure GHC.Show.show
+  ` <|>
+    + try
+    | ` <*>
+    |   + <*>
+    |   | + pure (\x_0 -> \x_1 -> (GHC.Types.:) 'a' ((GHC.Types.:) 'a' GHC.Types.[]))
+    |   | ` satisfy ((GHC.Classes.==) 'a')
+    |   ` satisfy ((GHC.Classes.==) 'a')
+    ` try
+      ` <*>
+        + <*>
+        | + pure (\x_0 -> \x_1 -> (GHC.Types.:) 'a' ((GHC.Types.:) 'b' GHC.Types.[]))
+        | ` satisfy ((GHC.Classes.==) 'a')
+        ` satisfy ((GHC.Classes.==) 'b')
diff --git a/tests/Golden/Grammar/OptimizeGrammar/G8.expected.txt b/tests/Golden/Grammar/OptimizeGrammar/G8.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/OptimizeGrammar/G8.expected.txt
@@ -0,0 +1,10 @@
+lets
+` <*>
+  + <*>
+  | + pure (\x_0 -> \x_1 -> GHC.Show.show x_0)
+  | ` chainPre
+  |   + <*>
+  |   | + pure (\x_0 -> (GHC.Types.:) 'r')
+  |   | ` satisfy ((GHC.Classes.==) 'r')
+  |   ` pure GHC.Types.[]
+  ` eof
diff --git a/tests/Golden/Grammar/OptimizeGrammar/G9.expected.txt b/tests/Golden/Grammar/OptimizeGrammar/G9.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/OptimizeGrammar/G9.expected.txt
@@ -0,0 +1,4 @@
+lets
+` <*>
+  + pure GHC.Show.show
+  ` eof
diff --git a/tests/Golden/Grammar/ViewGrammar/G1.expected.txt b/tests/Golden/Grammar/ViewGrammar/G1.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/ViewGrammar/G1.expected.txt
@@ -0,0 +1,8 @@
+lets
+` <*>
+  + pure GHC.Show.show
+  ` <*>
+    + <*>
+    | + pure (\x_0 -> \x_1 -> x_0)
+    | ` pure 'a'
+    ` satisfy ((GHC.Classes.==) 'a')
diff --git a/tests/Golden/Grammar/ViewGrammar/G10.expected.txt b/tests/Golden/Grammar/ViewGrammar/G10.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/ViewGrammar/G10.expected.txt
@@ -0,0 +1,14 @@
+lets
+` <*>
+  + pure GHC.Show.show
+  ` <|>
+    + <*>
+    | + <*>
+    | | + pure (\x_0 -> \x_1 -> x_0)
+    | | ` pure 'a'
+    | ` satisfy ((GHC.Classes.==) 'a')
+    ` <*>
+      + <*>
+      | + pure (\x_0 -> \x_1 -> x_0)
+      | ` pure 'b'
+      ` satisfy ((GHC.Classes.==) 'b')
diff --git a/tests/Golden/Grammar/ViewGrammar/G11.expected.txt b/tests/Golden/Grammar/ViewGrammar/G11.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/ViewGrammar/G11.expected.txt
@@ -0,0 +1,20 @@
+lets
+` <*>
+  + pure GHC.Show.show
+  ` <*>
+    + <*>
+    | + pure (\x_0 -> \x_1 -> x_0)
+    | ` chainPre
+    |   + <*>
+    |   | + pure (GHC.Types.:)
+    |   | ` <*>
+    |   |   + <*>
+    |   |   | + pure (\x_0 -> \x_1 -> x_0)
+    |   |   | ` pure 'a'
+    |   |   ` satisfy ((GHC.Classes.==) 'a')
+    |   ` pure GHC.Types.[]
+    ` <*>
+      + <*>
+      | + pure (\x_0 -> \x_1 -> x_0)
+      | ` pure 'b'
+      ` satisfy ((GHC.Classes.==) 'b')
diff --git a/tests/Golden/Grammar/ViewGrammar/G12.expected.txt b/tests/Golden/Grammar/ViewGrammar/G12.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/ViewGrammar/G12.expected.txt
@@ -0,0 +1,12 @@
+lets
+` <*>
+  + pure GHC.Show.show
+  ` <*>
+    + <*>
+    | + pure (\x_0 -> \x_1 -> x_0)
+    | ` chainPre
+    |   + <*>
+    |   | + pure (GHC.Types.:)
+    |   | ` satisfy (\t_0 -> ('a' GHC.Classes.== t_0) GHC.Classes.|| (('b' GHC.Classes.== t_0) GHC.Classes.|| (('c' GHC.Classes.== t_0) GHC.Classes.|| (('d' GHC.Classes.== t_0) GHC.Classes.|| GHC.Types.False))))
+    |   ` pure GHC.Types.[]
+    ` eof
diff --git a/tests/Golden/Grammar/ViewGrammar/G13.expected.txt b/tests/Golden/Grammar/ViewGrammar/G13.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/ViewGrammar/G13.expected.txt
@@ -0,0 +1,97 @@
+lets
++ let name
+| ` <*>
+|   + <*>
+|   | + <*>
+|   | | + pure (\x_0 -> \x_1 -> x_0)
+|   | | ` pure (\x_0 -> x_0)
+|   | ` chainPost
+|   |   + pure GHC.Tuple.()
+|   |   ` <*>
+|   |     + <*>
+|   |     | + pure (\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1)
+|   |     | ` pure (\x_0 -> \x_1 -> x_0)
+|   |     ` satisfy (\c_0 -> GHC.Classes.not (('<' GHC.Classes.== c_0) GHC.Classes.|| (('>' GHC.Classes.== c_0) GHC.Classes.|| (('+' GHC.Classes.== c_0) GHC.Classes.|| (('-' GHC.Classes.== c_0) GHC.Classes.|| ((',' GHC.Classes.== c_0) GHC.Classes.|| (('.' GHC.Classes.== c_0) GHC.Classes.|| (('[' GHC.Classes.== c_0) GHC.Classes.|| ((']' GHC.Classes.== c_0) GHC.Classes.|| GHC.Types.False)))))))))
+|   ` pure GHC.Tuple.()
++ let name
+| ` chainPre
+|   + <*>
+|   | + pure (GHC.Types.:)
+|   | ` <*>
+|   |   + <*>
+|   |   | + pure (\x_0 -> \x_1 -> x_0)
+|   |   | ` conditional
+|   |   |   + condition
+|   |   |   | ` look
+|   |   |   |   ` satisfy (\x_0 -> GHC.Types.True)
+|   |   |   + default
+|   |   |   | ` failure
+|   |   |   + branch (\x_0 -> (\x_1 -> \x_2 -> (GHC.Classes.==) x_1 x_2) '<' x_0)
+|   |   |   | ` <*>
+|   |   |   |   + <*>
+|   |   |   |   | + pure (\x_0 -> \x_1 -> x_0)
+|   |   |   |   | ` pure Parsers.Brainfuck.Types.Backward
+|   |   |   |   ` satisfy (\x_0 -> GHC.Types.True)
+|   |   |   + branch (\x_0 -> (\x_1 -> \x_2 -> (GHC.Classes.==) x_1 x_2) '>' x_0)
+|   |   |   | ` <*>
+|   |   |   |   + <*>
+|   |   |   |   | + pure (\x_0 -> \x_1 -> x_0)
+|   |   |   |   | ` pure Parsers.Brainfuck.Types.Forward
+|   |   |   |   ` satisfy (\x_0 -> GHC.Types.True)
+|   |   |   + branch (\x_0 -> (\x_1 -> \x_2 -> (GHC.Classes.==) x_1 x_2) '+' x_0)
+|   |   |   | ` <*>
+|   |   |   |   + <*>
+|   |   |   |   | + pure (\x_0 -> \x_1 -> x_0)
+|   |   |   |   | ` pure Parsers.Brainfuck.Types.Increment
+|   |   |   |   ` satisfy (\x_0 -> GHC.Types.True)
+|   |   |   + branch (\x_0 -> (\x_1 -> \x_2 -> (GHC.Classes.==) x_1 x_2) '-' x_0)
+|   |   |   | ` <*>
+|   |   |   |   + <*>
+|   |   |   |   | + pure (\x_0 -> \x_1 -> x_0)
+|   |   |   |   | ` pure Parsers.Brainfuck.Types.Decrement
+|   |   |   |   ` satisfy (\x_0 -> GHC.Types.True)
+|   |   |   + branch (\x_0 -> (\x_1 -> \x_2 -> (GHC.Classes.==) x_1 x_2) ',' x_0)
+|   |   |   | ` <*>
+|   |   |   |   + <*>
+|   |   |   |   | + pure (\x_0 -> \x_1 -> x_0)
+|   |   |   |   | ` pure Parsers.Brainfuck.Types.Input
+|   |   |   |   ` satisfy (\x_0 -> GHC.Types.True)
+|   |   |   + branch (\x_0 -> (\x_1 -> \x_2 -> (GHC.Classes.==) x_1 x_2) '.' x_0)
+|   |   |   | ` <*>
+|   |   |   |   + <*>
+|   |   |   |   | + pure (\x_0 -> \x_1 -> x_0)
+|   |   |   |   | ` pure Parsers.Brainfuck.Types.Output
+|   |   |   |   ` satisfy (\x_0 -> GHC.Types.True)
+|   |   |   ` branch (\x_0 -> (\x_1 -> \x_2 -> (GHC.Classes.==) x_1 x_2) '[' x_0)
+|   |   |     ` <*>
+|   |   |       + <*>
+|   |   |       | + pure (\x_0 -> \x_1 -> x_0)
+|   |   |       | ` <*>
+|   |   |       |   + <*>
+|   |   |       |   | + <*>
+|   |   |       |   | | + pure (\x_0 -> \x_1 -> x_0)
+|   |   |       |   | | ` pure (\x_0 -> x_0)
+|   |   |       |   | ` <*>
+|   |   |       |   |   + <*>
+|   |   |       |   |   | + pure (\x_0 -> \x_1 -> x_0)
+|   |   |       |   |   | ` satisfy (\x_0 -> GHC.Types.True)
+|   |   |       |   |   ` ref name
+|   |   |       |   ` <*>
+|   |   |       |     + pure Parsers.Brainfuck.Types.Loop
+|   |   |       |     ` rec name
+|   |   |       ` <*>
+|   |   |         + <*>
+|   |   |         | + pure (\x_0 -> \x_1 -> x_0)
+|   |   |         | ` pure ']'
+|   |   |         ` satisfy ((GHC.Classes.==) ']')
+|   |   ` ref name
+|   ` pure GHC.Types.[]
+` <*>
+  + pure GHC.Show.show
+  ` <*>
+    + <*>
+    | + <*>
+    | | + pure (\x_0 -> \x_1 -> x_0)
+    | | ` pure (\x_0 -> x_0)
+    | ` ref name
+    ` ref name
diff --git a/tests/Golden/Grammar/ViewGrammar/G14.expected.txt b/tests/Golden/Grammar/ViewGrammar/G14.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/ViewGrammar/G14.expected.txt
@@ -0,0 +1,744 @@
+lets
++ let name
+| ` <*>
+|   + <*>
+|   | + <*>
+|   | | + pure (\x_0 -> \x_1 -> x_0)
+|   | | ` pure (\x_0 -> x_0)
+|   | ` ref name
+|   ` <*>
+|     + <*>
+|     | + <*>
+|     | | + pure (\x_0 -> \x_1 -> x_0)
+|     | | ` pure (\x_0 -> x_0)
+|     | ` chainPost
+|     |   + pure GHC.Tuple.()
+|     |   ` <*>
+|     |     + <*>
+|     |     | + pure (\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1)
+|     |     | ` pure (\x_0 -> \x_1 -> x_0)
+|     |     ` ref name
+|     ` pure GHC.Tuple.()
++ let name
+| ` <*>
+|   + <*>
+|   | + <*>
+|   | | + pure (\x_0 -> \x_1 -> x_0)
+|   | | ` pure (\x_0 -> x_0)
+|   | ` ref name
+|   ` <*>
+|     + <*>
+|     | + <*>
+|     | | + pure (\x_0 -> \x_1 -> x_0)
+|     | | ` pure (\x_0 -> x_0)
+|     | ` chainPost
+|     |   + ref name
+|     |   ` <*>
+|     |     + <*>
+|     |     | + pure (\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1)
+|     |     | ` pure (\x_0 -> \x_1 -> x_0)
+|     |     ` <*>
+|     |       + <*>
+|     |       | + <*>
+|     |       | | + pure (\x_0 -> \x_1 -> x_0)
+|     |       | | ` pure (\x_0 -> x_0)
+|     |       | ` <*>
+|     |       |   + <*>
+|     |       |   | + pure (\x_0 -> \x_1 -> x_0)
+|     |       |   | ` <*>
+|     |       |   |   + <*>
+|     |       |   |   | + pure (\x_0 -> \x_1 -> x_0)
+|     |       |   |   | ` pure '!'
+|     |       |   |   ` satisfy ((GHC.Classes.==) '!')
+|     |       |   ` ref name
+|     |       ` ref name
+|     ` ref name
++ let name
+| ` <*>
+|   + <*>
+|   | + pure (\x_0 -> \x_1 -> x_0)
+|   | ` <*>
+|   |   + <*>
+|   |   | + <*>
+|   |   | | + pure (\x_0 -> \x_1 -> x_0)
+|   |   | | ` pure (\x_0 -> x_0)
+|   |   | ` <*>
+|   |   |   + <*>
+|   |   |   | + pure (\x_0 -> \x_1 -> x_0)
+|   |   |   | ` <*>
+|   |   |   |   + <*>
+|   |   |   |   | + pure (\x_0 -> \x_1 -> x_0)
+|   |   |   |   | ` pure '['
+|   |   |   |   ` satisfy ((GHC.Classes.==) '[')
+|   |   |   ` ref name
+|   |   ` <*>
+|   |     + <*>
+|   |     | + <*>
+|   |     | | + pure (\x_0 -> \x_1 -> x_0)
+|   |     | | ` pure (\x_0 -> x_0)
+|   |     | ` ref name
+|   |     ` <*>
+|   |       + <*>
+|   |       | + <*>
+|   |       | | + pure (\x_0 -> \x_1 -> x_0)
+|   |       | | ` pure (\x_0 -> x_0)
+|   |       | ` chainPost
+|   |       |   + pure GHC.Tuple.()
+|   |       |   ` <*>
+|   |       |     + <*>
+|   |       |     | + pure (\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1)
+|   |       |     | ` pure (\x_0 -> \x_1 -> x_0)
+|   |       |     ` ref name
+|   |       ` pure GHC.Tuple.()
+|   ` <*>
+|     + <*>
+|     | + pure (\x_0 -> \x_1 -> x_0)
+|     | ` <*>
+|     |   + <*>
+|     |   | + pure (\x_0 -> \x_1 -> x_0)
+|     |   | ` pure ']'
+|     |   ` satisfy ((GHC.Classes.==) ']')
+|     ` ref name
++ let name
+| ` <*>
+|   + <*>
+|   | + pure (\x_0 -> \x_1 -> x_0)
+|   | ` <*>
+|   |   + <*>
+|   |   | + <*>
+|   |   | | + pure (\x_0 -> \x_1 -> x_0)
+|   |   | | ` pure (\x_0 -> x_0)
+|   |   | ` <*>
+|   |   |   + <*>
+|   |   |   | + pure (\x_0 -> \x_1 -> x_0)
+|   |   |   | ` <*>
+|   |   |   |   + <*>
+|   |   |   |   | + pure (\x_0 -> \x_1 -> x_0)
+|   |   |   |   | ` pure '{'
+|   |   |   |   ` satisfy ((GHC.Classes.==) '{')
+|   |   |   ` ref name
+|   |   ` <*>
+|   |     + <*>
+|   |     | + <*>
+|   |     | | + pure (\x_0 -> \x_1 -> x_0)
+|   |     | | ` pure (\x_0 -> x_0)
+|   |     | ` chainPost
+|   |     |   + ref name
+|   |     |   ` <*>
+|   |     |     + <*>
+|   |     |     | + pure (\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1)
+|   |     |     | ` pure (\x_0 -> \x_1 -> x_0)
+|   |     |     ` <|>
+|   |     |       + <|>
+|   |     |       | + <|>
+|   |     |       | | + <*>
+|   |     |       | | | + <*>
+|   |     |       | | | | + <*>
+|   |     |       | | | | | + pure (\x_0 -> \x_1 -> x_0)
+|   |     |       | | | | | ` pure (\x_0 -> x_0)
+|   |     |       | | | | ` try
+|   |     |       | | | |   ` <*>
+|   |     |       | | | |     + <*>
+|   |     |       | | | |     | + pure (GHC.Types.:)
+|   |     |       | | | |     | ` <*>
+|   |     |       | | | |     |   + <*>
+|   |     |       | | | |     |   | + pure (\x_0 -> \x_1 -> x_0)
+|   |     |       | | | |     |   | ` pure 'i'
+|   |     |       | | | |     |   ` satisfy ((GHC.Classes.==) 'i')
+|   |     |       | | | |     ` <*>
+|   |     |       | | | |       + <*>
+|   |     |       | | | |       | + pure (GHC.Types.:)
+|   |     |       | | | |       | ` <*>
+|   |     |       | | | |       |   + <*>
+|   |     |       | | | |       |   | + pure (\x_0 -> \x_1 -> x_0)
+|   |     |       | | | |       |   | ` pure 'f'
+|   |     |       | | | |       |   ` satisfy ((GHC.Classes.==) 'f')
+|   |     |       | | | |       ` pure GHC.Types.[]
+|   |     |       | | | ` ref name
+|   |     |       | | ` <*>
+|   |     |       | |   + <*>
+|   |     |       | |   | + <*>
+|   |     |       | |   | | + pure (\x_0 -> \x_1 -> x_0)
+|   |     |       | |   | | ` pure (\x_0 -> x_0)
+|   |     |       | |   | ` <*>
+|   |     |       | |   |   + <*>
+|   |     |       | |   |   | + <*>
+|   |     |       | |   |   | | + pure (\x_0 -> \x_1 -> x_0)
+|   |     |       | |   |   | | ` pure (\x_0 -> x_0)
+|   |     |       | |   |   | ` <*>
+|   |     |       | |   |   |   + <*>
+|   |     |       | |   |   |   | + <*>
+|   |     |       | |   |   |   | | + pure (\x_0 -> \x_1 -> x_0)
+|   |     |       | |   |   |   | | ` pure (\x_0 -> x_0)
+|   |     |       | |   |   |   | ` try
+|   |     |       | |   |   |   |   ` <*>
+|   |     |       | |   |   |   |     + <*>
+|   |     |       | |   |   |   |     | + pure (GHC.Types.:)
+|   |     |       | |   |   |   |     | ` <*>
+|   |     |       | |   |   |   |     |   + <*>
+|   |     |       | |   |   |   |     |   | + pure (\x_0 -> \x_1 -> x_0)
+|   |     |       | |   |   |   |     |   | ` pure 'w'
+|   |     |       | |   |   |   |     |   ` satisfy ((GHC.Classes.==) 'w')
+|   |     |       | |   |   |   |     ` <*>
+|   |     |       | |   |   |   |       + <*>
+|   |     |       | |   |   |   |       | + pure (GHC.Types.:)
+|   |     |       | |   |   |   |       | ` <*>
+|   |     |       | |   |   |   |       |   + <*>
+|   |     |       | |   |   |   |       |   | + pure (\x_0 -> \x_1 -> x_0)
+|   |     |       | |   |   |   |       |   | ` pure 'h'
+|   |     |       | |   |   |   |       |   ` satisfy ((GHC.Classes.==) 'h')
+|   |     |       | |   |   |   |       ` <*>
+|   |     |       | |   |   |   |         + <*>
+|   |     |       | |   |   |   |         | + pure (GHC.Types.:)
+|   |     |       | |   |   |   |         | ` <*>
+|   |     |       | |   |   |   |         |   + <*>
+|   |     |       | |   |   |   |         |   | + pure (\x_0 -> \x_1 -> x_0)
+|   |     |       | |   |   |   |         |   | ` pure 'i'
+|   |     |       | |   |   |   |         |   ` satisfy ((GHC.Classes.==) 'i')
+|   |     |       | |   |   |   |         ` <*>
+|   |     |       | |   |   |   |           + <*>
+|   |     |       | |   |   |   |           | + pure (GHC.Types.:)
+|   |     |       | |   |   |   |           | ` <*>
+|   |     |       | |   |   |   |           |   + <*>
+|   |     |       | |   |   |   |           |   | + pure (\x_0 -> \x_1 -> x_0)
+|   |     |       | |   |   |   |           |   | ` pure 'l'
+|   |     |       | |   |   |   |           |   ` satisfy ((GHC.Classes.==) 'l')
+|   |     |       | |   |   |   |           ` <*>
+|   |     |       | |   |   |   |             + <*>
+|   |     |       | |   |   |   |             | + pure (GHC.Types.:)
+|   |     |       | |   |   |   |             | ` <*>
+|   |     |       | |   |   |   |             |   + <*>
+|   |     |       | |   |   |   |             |   | + pure (\x_0 -> \x_1 -> x_0)
+|   |     |       | |   |   |   |             |   | ` pure 'e'
+|   |     |       | |   |   |   |             |   ` satisfy ((GHC.Classes.==) 'e')
+|   |     |       | |   |   |   |             ` pure GHC.Types.[]
+|   |     |       | |   |   |   ` ref name
+|   |     |       | |   |   ` ref name
+|   |     |       | |   ` rec name
+|   |     |       | ` try
+|   |     |       |   ` <*>
+|   |     |       |     + <*>
+|   |     |       |     | + pure (\x_0 -> \x_1 -> x_0)
+|   |     |       |     | ` <*>
+|   |     |       |     |   + <*>
+|   |     |       |     |   | + <*>
+|   |     |       |     |   | | + pure (\x_0 -> \x_1 -> x_0)
+|   |     |       |     |   | | ` pure (\x_0 -> x_0)
+|   |     |       |     |   | ` <*>
+|   |     |       |     |   |   + <*>
+|   |     |       |     |   |   | + <*>
+|   |     |       |     |   |   | | + pure (\x_0 -> \x_1 -> x_0)
+|   |     |       |     |   |   | | ` pure (\x_0 -> x_0)
+|   |     |       |     |   |   | ` <*>
+|   |     |       |     |   |   |   + <*>
+|   |     |       |     |   |   |   | + <*>
+|   |     |       |     |   |   |   | | + pure (\x_0 -> \x_1 -> x_0)
+|   |     |       |     |   |   |   | | ` pure (\x_0 -> x_0)
+|   |     |       |     |   |   |   | ` <|>
+|   |     |       |     |   |   |   |   + <*>
+|   |     |       |     |   |   |   |   | + <*>
+|   |     |       |     |   |   |   |   | | + pure (\x_0 -> \x_1 -> x_0)
+|   |     |       |     |   |   |   |   | | ` pure GHC.Tuple.()
+|   |     |       |     |   |   |   |   | ` <*>
+|   |     |       |     |   |   |   |   |   + <*>
+|   |     |       |     |   |   |   |   |   | + <*>
+|   |     |       |     |   |   |   |   |   | | + pure (\x_0 -> \x_1 -> x_0)
+|   |     |       |     |   |   |   |   |   | | ` pure (\x_0 -> x_0)
+|   |     |       |     |   |   |   |   |   | ` try
+|   |     |       |     |   |   |   |   |   |   ` <*>
+|   |     |       |     |   |   |   |   |   |     + <*>
+|   |     |       |     |   |   |   |   |   |     | + pure (GHC.Types.:)
+|   |     |       |     |   |   |   |   |   |     | ` <*>
+|   |     |       |     |   |   |   |   |   |     |   + <*>
+|   |     |       |     |   |   |   |   |   |     |   | + pure (\x_0 -> \x_1 -> x_0)
+|   |     |       |     |   |   |   |   |   |     |   | ` pure 'v'
+|   |     |       |     |   |   |   |   |   |     |   ` satisfy ((GHC.Classes.==) 'v')
+|   |     |       |     |   |   |   |   |   |     ` <*>
+|   |     |       |     |   |   |   |   |   |       + <*>
+|   |     |       |     |   |   |   |   |   |       | + pure (GHC.Types.:)
+|   |     |       |     |   |   |   |   |   |       | ` <*>
+|   |     |       |     |   |   |   |   |   |       |   + <*>
+|   |     |       |     |   |   |   |   |   |       |   | + pure (\x_0 -> \x_1 -> x_0)
+|   |     |       |     |   |   |   |   |   |       |   | ` pure 'a'
+|   |     |       |     |   |   |   |   |   |       |   ` satisfy ((GHC.Classes.==) 'a')
+|   |     |       |     |   |   |   |   |   |       ` <*>
+|   |     |       |     |   |   |   |   |   |         + <*>
+|   |     |       |     |   |   |   |   |   |         | + pure (GHC.Types.:)
+|   |     |       |     |   |   |   |   |   |         | ` <*>
+|   |     |       |     |   |   |   |   |   |         |   + <*>
+|   |     |       |     |   |   |   |   |   |         |   | + pure (\x_0 -> \x_1 -> x_0)
+|   |     |       |     |   |   |   |   |   |         |   | ` pure 'r'
+|   |     |       |     |   |   |   |   |   |         |   ` satisfy ((GHC.Classes.==) 'r')
+|   |     |       |     |   |   |   |   |   |         ` pure GHC.Types.[]
+|   |     |       |     |   |   |   |   |   ` ref name
+|   |     |       |     |   |   |   |   ` ref name
+|   |     |       |     |   |   |   ` <*>
+|   |     |       |     |   |   |     + <*>
+|   |     |       |     |   |   |     | + <*>
+|   |     |       |     |   |   |     | | + pure (\x_0 -> \x_1 -> x_0)
+|   |     |       |     |   |   |     | | ` pure (\x_0 -> x_0)
+|   |     |       |     |   |   |     | ` ref name
+|   |     |       |     |   |   |     ` <*>
+|   |     |       |     |   |   |       + <*>
+|   |     |       |     |   |   |       | + <*>
+|   |     |       |     |   |   |       | | + pure (\x_0 -> \x_1 -> x_0)
+|   |     |       |     |   |   |       | | ` pure (\x_0 -> x_0)
+|   |     |       |     |   |   |       | ` chainPost
+|   |     |       |     |   |   |       |   + ref name
+|   |     |       |     |   |   |       |   ` <*>
+|   |     |       |     |   |   |       |     + ref name
+|   |     |       |     |   |   |       |     ` <*>
+|   |     |       |     |   |   |       |       + <*>
+|   |     |       |     |   |   |       |       | + <*>
+|   |     |       |     |   |   |       |       | | + pure (\x_0 -> \x_1 -> x_0)
+|   |     |       |     |   |   |       |       | | ` pure (\x_0 -> x_0)
+|   |     |       |     |   |   |       |       | ` ref name
+|   |     |       |     |   |   |       |       ` ref name
+|   |     |       |     |   |   |       ` ref name
+|   |     |       |     |   |   ` <*>
+|   |     |       |     |   |     + <*>
+|   |     |       |     |   |     | + pure (\x_0 -> \x_1 -> x_0)
+|   |     |       |     |   |     | ` <*>
+|   |     |       |     |   |     |   + <*>
+|   |     |       |     |   |     |   | + pure (\x_0 -> \x_1 -> x_0)
+|   |     |       |     |   |     |   | ` pure '='
+|   |     |       |     |   |     |   ` satisfy ((GHC.Classes.==) '=')
+|   |     |       |     |   |     ` ref name
+|   |     |       |     |   ` <*>
+|   |     |       |     |     + <*>
+|   |     |       |     |     | + <*>
+|   |     |       |     |     | | + pure (\x_0 -> \x_1 -> x_0)
+|   |     |       |     |     | | ` pure (\x_0 -> x_0)
+|   |     |       |     |     | ` ref name
+|   |     |       |     |     ` <*>
+|   |     |       |     |       + <*>
+|   |     |       |     |       | + <*>
+|   |     |       |     |       | | + pure (\x_0 -> \x_1 -> x_0)
+|   |     |       |     |       | | ` pure (\x_0 -> x_0)
+|   |     |       |     |       | ` chainPost
+|   |     |       |     |       |   + ref name
+|   |     |       |     |       |   ` <*>
+|   |     |       |     |       |     + ref name
+|   |     |       |     |       |     ` <*>
+|   |     |       |     |       |       + <*>
+|   |     |       |     |       |       | + <*>
+|   |     |       |     |       |       | | + pure (\x_0 -> \x_1 -> x_0)
+|   |     |       |     |       |       | | ` pure (\x_0 -> x_0)
+|   |     |       |     |       |       | ` ref name
+|   |     |       |     |       |       ` ref name
+|   |     |       |     |       ` ref name
+|   |     |       |     ` ref name
+|   |     |       ` <*>
+|   |     |         + <*>
+|   |     |         | + pure (\x_0 -> \x_1 -> x_0)
+|   |     |         | ` ref name
+|   |     |         ` ref name
+|   |     ` ref name
+|   ` <*>
+|     + <*>
+|     | + pure (\x_0 -> \x_1 -> x_0)
+|     | ` <*>
+|     |   + <*>
+|     |   | + pure (\x_0 -> \x_1 -> x_0)
+|     |   | ` pure '}'
+|     |   ` satisfy ((GHC.Classes.==) '}')
+|     ` ref name
++ let name
+| ` <*>
+|   + <*>
+|   | + <*>
+|   | | + pure (\x_0 -> \x_1 -> x_0)
+|   | | ` pure (\x_0 -> x_0)
+|   | ` ref name
+|   ` <|>
+|     + <*>
+|     | + <*>
+|     | | + pure (\x_0 -> \x_1 -> x_0)
+|     | | ` pure GHC.Tuple.()
+|     | ` ref name
+|     ` ref name
++ let name
+| ` <*>
+|   + <*>
+|   | + <*>
+|   | | + pure (\x_0 -> \x_1 -> x_0)
+|   | | ` pure (\x_0 -> x_0)
+|   | ` satisfy GHC.Unicode.isSpace
+|   ` ref name
++ let name
+| ` <*>
+|   + <*>
+|   | + <*>
+|   | | + pure (\x_0 -> \x_1 -> x_0)
+|   | | ` pure (\x_0 -> x_0)
+|   | ` try
+|   |   ` <*>
+|   |     + <*>
+|   |     | + <*>
+|   |     | | + pure (\x_0 -> \x_1 -> x_0)
+|   |     | | ` pure (\x_0 -> x_0)
+|   |     | ` satisfy Parsers.Nandlang.nandIdentStart
+|   |     ` <*>
+|   |       + <*>
+|   |       | + <*>
+|   |       | | + pure (\x_0 -> \x_1 -> x_0)
+|   |       | | ` pure (\x_0 -> x_0)
+|   |       | ` chainPost
+|   |       |   + ref name
+|   |       |   ` <*>
+|   |       |     + <*>
+|   |       |     | + pure (\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1)
+|   |       |     | ` pure (\x_0 -> \x_1 -> x_0)
+|   |       |     ` satisfy Parsers.Nandlang.nandIdentLetter
+|   |       ` ref name
+|   ` ref name
++ let name
+| ` <*>
+|   + <*>
+|   | + pure (\x_0 -> \x_1 -> x_0)
+|   | ` <*>
+|   |   + <*>
+|   |   | + pure (\x_0 -> \x_1 -> x_0)
+|   |   | ` pure '('
+|   |   ` satisfy ((GHC.Classes.==) '(')
+|   ` ref name
++ let name
+| ` <*>
+|   + <*>
+|   | + pure (\x_0 -> \x_1 -> x_0)
+|   | ` <*>
+|   |   + <*>
+|   |   | + pure (\x_0 -> \x_1 -> x_0)
+|   |   | ` pure ')'
+|   |   ` satisfy ((GHC.Classes.==) ')')
+|   ` ref name
++ let name
+| ` <*>
+|   + <*>
+|   | + pure (\x_0 -> \x_1 -> x_0)
+|   | ` <*>
+|   |   + <*>
+|   |   | + pure (\x_0 -> \x_1 -> x_0)
+|   |   | ` pure ','
+|   |   ` satisfy ((GHC.Classes.==) ',')
+|   ` ref name
++ let name
+| ` <*>
+|   + <*>
+|   | + pure (\x_0 -> \x_1 -> x_0)
+|   | ` <*>
+|   |   + <*>
+|   |   | + pure (\x_0 -> \x_1 -> x_0)
+|   |   | ` pure ';'
+|   |   ` satisfy ((GHC.Classes.==) ';')
+|   ` ref name
++ let name
+| ` <*>
+|   + pure (\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1)
+|   ` pure (\x_0 -> \x_1 -> x_0)
++ let name
+| ` <|>
+|   + <*>
+|   | + <*>
+|   | | + pure (\x_0 -> \x_1 -> x_0)
+|   | | ` pure GHC.Tuple.()
+|   | ` <*>
+|   |   + <*>
+|   |   | + <*>
+|   |   | | + pure (\x_0 -> \x_1 -> x_0)
+|   |   | | ` pure (\x_0 -> x_0)
+|   |   | ` ref name
+|   |   ` <*>
+|   |     + <*>
+|   |     | + <*>
+|   |     | | + pure (\x_0 -> \x_1 -> x_0)
+|   |     | | ` pure (\x_0 -> x_0)
+|   |     | ` chainPost
+|   |     |   + ref name
+|   |     |   ` <*>
+|   |     |     + ref name
+|   |     |     ` <*>
+|   |     |       + <*>
+|   |     |       | + <*>
+|   |     |       | | + pure (\x_0 -> \x_1 -> x_0)
+|   |     |       | | ` pure (\x_0 -> x_0)
+|   |     |       | ` ref name
+|   |     |       ` ref name
+|   |     ` ref name
+|   ` ref name
++ let name
+| ` <|>
+|   + <|>
+|   | + <*>
+|   | | + <*>
+|   | | | + <*>
+|   | | | | + pure (\x_0 -> \x_1 -> x_0)
+|   | | | | ` pure (\x_0 -> x_0)
+|   | | | ` <|>
+|   | | |   + <*>
+|   | | |   | + <*>
+|   | | |   | | + pure (\x_0 -> \x_1 -> x_0)
+|   | | |   | | ` pure '0'
+|   | | |   | ` satisfy ((GHC.Classes.==) '0')
+|   | | |   ` <*>
+|   | | |     + <*>
+|   | | |     | + pure (\x_0 -> \x_1 -> x_0)
+|   | | |     | ` pure '1'
+|   | | |     ` satisfy ((GHC.Classes.==) '1')
+|   | | ` ref name
+|   | ` <*>
+|   |   + <*>
+|   |   | + pure (\x_0 -> \x_1 -> x_0)
+|   |   | ` <*>
+|   |   |   + <*>
+|   |   |   | + <*>
+|   |   |   | | + pure (\x_0 -> \x_1 -> x_0)
+|   |   |   | | ` pure (\x_0 -> x_0)
+|   |   |   | ` <*>
+|   |   |   |   + <*>
+|   |   |   |   | + pure (\x_0 -> \x_1 -> x_0)
+|   |   |   |   | ` pure '\''
+|   |   |   |   ` satisfy ((GHC.Classes.==) '\'')
+|   |   |   ` <|>
+|   |   |     + <*>
+|   |   |     | + <*>
+|   |   |     | | + <*>
+|   |   |     | | | + pure (\x_0 -> \x_1 -> x_0)
+|   |   |     | | | ` pure (\x_0 -> x_0)
+|   |   |     | | ` satisfy Parsers.Nandlang.nandStringLetter
+|   |   |     | ` ref name
+|   |   |     ` <*>
+|   |   |       + <*>
+|   |   |       | + <*>
+|   |   |       | | + pure (\x_0 -> \x_1 -> x_0)
+|   |   |       | | ` pure (\x_0 -> x_0)
+|   |   |       | ` <*>
+|   |   |       |   + <*>
+|   |   |       |   | + pure (\x_0 -> \x_1 -> x_0)
+|   |   |       |   | ` pure '\\'
+|   |   |       |   ` satisfy ((GHC.Classes.==) '\\')
+|   |   |       ` <*>
+|   |   |         + <*>
+|   |   |         | + <*>
+|   |   |         | | + pure (\x_0 -> \x_1 -> x_0)
+|   |   |         | | ` pure (\x_0 -> x_0)
+|   |   |         | ` 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
+|   |   ` <*>
+|   |     + <*>
+|   |     | + pure (\x_0 -> \x_1 -> x_0)
+|   |     | ` <*>
+|   |     |   + <*>
+|   |     |   | + pure (\x_0 -> \x_1 -> x_0)
+|   |     |   | ` pure '\''
+|   |     |   ` satisfy ((GHC.Classes.==) '\'')
+|   |     ` ref name
+|   ` <*>
+|     + <*>
+|     | + <*>
+|     | | + pure (\x_0 -> \x_1 -> x_0)
+|     | | ` pure (\x_0 -> x_0)
+|     | ` ref name
+|     ` <|>
+|       + <*>
+|       | + <*>
+|       | | + pure (\x_0 -> \x_1 -> x_0)
+|       | | ` pure GHC.Tuple.()
+|       | ` <|>
+|       |   + <*>
+|       |   | + <*>
+|       |   | | + pure (\x_0 -> \x_1 -> x_0)
+|       |   | | ` <*>
+|       |   | |   + <*>
+|       |   | |   | + <*>
+|       |   | |   | | + pure (\x_0 -> \x_1 -> x_0)
+|       |   | |   | | ` pure (\x_0 -> x_0)
+|       |   | |   | ` ref name
+|       |   | |   ` <|>
+|       |   | |     + <*>
+|       |   | |     | + <*>
+|       |   | |     | | + pure (\x_0 -> \x_1 -> x_0)
+|       |   | |     | | ` pure GHC.Tuple.()
+|       |   | |     | ` <*>
+|       |   | |     |   + <*>
+|       |   | |     |   | + <*>
+|       |   | |     |   | | + pure (\x_0 -> \x_1 -> x_0)
+|       |   | |     |   | | ` pure (\x_0 -> x_0)
+|       |   | |     |   | ` rec name
+|       |   | |     |   ` <*>
+|       |   | |     |     + <*>
+|       |   | |     |     | + <*>
+|       |   | |     |     | | + pure (\x_0 -> \x_1 -> x_0)
+|       |   | |     |     | | ` pure (\x_0 -> x_0)
+|       |   | |     |     | ` chainPost
+|       |   | |     |     |   + ref name
+|       |   | |     |     |   ` <*>
+|       |   | |     |     |     + ref name
+|       |   | |     |     |     ` <*>
+|       |   | |     |     |       + <*>
+|       |   | |     |     |       | + <*>
+|       |   | |     |     |       | | + pure (\x_0 -> \x_1 -> x_0)
+|       |   | |     |     |       | | ` pure (\x_0 -> x_0)
+|       |   | |     |     |       | ` ref name
+|       |   | |     |     |       ` rec name
+|       |   | |     |     ` ref name
+|       |   | |     ` ref name
+|       |   | ` ref name
+|       |   ` ref name
+|       ` ref name
++ 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 GHC.Show.show
+  ` <*>
+    + <*>
+    | + pure (\x_0 -> \x_1 -> x_0)
+    | ` <*>
+    |   + <*>
+    |   | + <*>
+    |   | | + pure (\x_0 -> \x_1 -> x_0)
+    |   | | ` pure (\x_0 -> x_0)
+    |   | ` ref name
+    |   ` <*>
+    |     + <*>
+    |     | + <*>
+    |     | | + pure (\x_0 -> \x_1 -> x_0)
+    |     | | ` pure (\x_0 -> x_0)
+    |     | ` chainPost
+    |     |   + ref name
+    |     |   ` <*>
+    |     |     + <*>
+    |     |     | + pure (\x_0 -> \x_1 -> \x_2 -> x_0 x_2 x_1)
+    |     |     | ` pure (\x_0 -> \x_1 -> x_0)
+    |     |     ` <*>
+    |     |       + <*>
+    |     |       | + <*>
+    |     |       | | + pure (\x_0 -> \x_1 -> x_0)
+    |     |       | | ` pure (\x_0 -> x_0)
+    |     |       | ` <*>
+    |     |       |   + <*>
+    |     |       |   | + <*>
+    |     |       |   | | + pure (\x_0 -> \x_1 -> x_0)
+    |     |       |   | | ` pure (\x_0 -> x_0)
+    |     |       |   | ` <*>
+    |     |       |   |   + <*>
+    |     |       |   |   | + <*>
+    |     |       |   |   | | + pure (\x_0 -> \x_1 -> x_0)
+    |     |       |   |   | | ` pure (\x_0 -> x_0)
+    |     |       |   |   | ` <*>
+    |     |       |   |   |   + <*>
+    |     |       |   |   |   | + <*>
+    |     |       |   |   |   | | + pure (\x_0 -> \x_1 -> x_0)
+    |     |       |   |   |   | | ` pure (\x_0 -> x_0)
+    |     |       |   |   |   | ` try
+    |     |       |   |   |   |   ` <*>
+    |     |       |   |   |   |     + <*>
+    |     |       |   |   |   |     | + pure (GHC.Types.:)
+    |     |       |   |   |   |     | ` <*>
+    |     |       |   |   |   |     |   + <*>
+    |     |       |   |   |   |     |   | + pure (\x_0 -> \x_1 -> x_0)
+    |     |       |   |   |   |     |   | ` pure 'f'
+    |     |       |   |   |   |     |   ` satisfy ((GHC.Classes.==) 'f')
+    |     |       |   |   |   |     ` <*>
+    |     |       |   |   |   |       + <*>
+    |     |       |   |   |   |       | + pure (GHC.Types.:)
+    |     |       |   |   |   |       | ` <*>
+    |     |       |   |   |   |       |   + <*>
+    |     |       |   |   |   |       |   | + pure (\x_0 -> \x_1 -> x_0)
+    |     |       |   |   |   |       |   | ` pure 'u'
+    |     |       |   |   |   |       |   ` satisfy ((GHC.Classes.==) 'u')
+    |     |       |   |   |   |       ` <*>
+    |     |       |   |   |   |         + <*>
+    |     |       |   |   |   |         | + pure (GHC.Types.:)
+    |     |       |   |   |   |         | ` <*>
+    |     |       |   |   |   |         |   + <*>
+    |     |       |   |   |   |         |   | + pure (\x_0 -> \x_1 -> x_0)
+    |     |       |   |   |   |         |   | ` pure 'n'
+    |     |       |   |   |   |         |   ` satisfy ((GHC.Classes.==) 'n')
+    |     |       |   |   |   |         ` <*>
+    |     |       |   |   |   |           + <*>
+    |     |       |   |   |   |           | + pure (GHC.Types.:)
+    |     |       |   |   |   |           | ` <*>
+    |     |       |   |   |   |           |   + <*>
+    |     |       |   |   |   |           |   | + pure (\x_0 -> \x_1 -> x_0)
+    |     |       |   |   |   |           |   | ` pure 'c'
+    |     |       |   |   |   |           |   ` satisfy ((GHC.Classes.==) 'c')
+    |     |       |   |   |   |           ` <*>
+    |     |       |   |   |   |             + <*>
+    |     |       |   |   |   |             | + pure (GHC.Types.:)
+    |     |       |   |   |   |             | ` <*>
+    |     |       |   |   |   |             |   + <*>
+    |     |       |   |   |   |             |   | + pure (\x_0 -> \x_1 -> x_0)
+    |     |       |   |   |   |             |   | ` pure 't'
+    |     |       |   |   |   |             |   ` satisfy ((GHC.Classes.==) 't')
+    |     |       |   |   |   |             ` <*>
+    |     |       |   |   |   |               + <*>
+    |     |       |   |   |   |               | + pure (GHC.Types.:)
+    |     |       |   |   |   |               | ` <*>
+    |     |       |   |   |   |               |   + <*>
+    |     |       |   |   |   |               |   | + pure (\x_0 -> \x_1 -> x_0)
+    |     |       |   |   |   |               |   | ` pure 'i'
+    |     |       |   |   |   |               |   ` satisfy ((GHC.Classes.==) 'i')
+    |     |       |   |   |   |               ` <*>
+    |     |       |   |   |   |                 + <*>
+    |     |       |   |   |   |                 | + pure (GHC.Types.:)
+    |     |       |   |   |   |                 | ` <*>
+    |     |       |   |   |   |                 |   + <*>
+    |     |       |   |   |   |                 |   | + pure (\x_0 -> \x_1 -> x_0)
+    |     |       |   |   |   |                 |   | ` pure 'o'
+    |     |       |   |   |   |                 |   ` satisfy ((GHC.Classes.==) 'o')
+    |     |       |   |   |   |                 ` <*>
+    |     |       |   |   |   |                   + <*>
+    |     |       |   |   |   |                   | + pure (GHC.Types.:)
+    |     |       |   |   |   |                   | ` <*>
+    |     |       |   |   |   |                   |   + <*>
+    |     |       |   |   |   |                   |   | + pure (\x_0 -> \x_1 -> x_0)
+    |     |       |   |   |   |                   |   | ` pure 'n'
+    |     |       |   |   |   |                   |   ` satisfy ((GHC.Classes.==) 'n')
+    |     |       |   |   |   |                   ` pure GHC.Types.[]
+    |     |       |   |   |   ` ref name
+    |     |       |   |   ` ref name
+    |     |       |   ` <*>
+    |     |       |     + <*>
+    |     |       |     | + pure (\x_0 -> \x_1 -> x_0)
+    |     |       |     | ` <*>
+    |     |       |     |   + <*>
+    |     |       |     |   | + <*>
+    |     |       |     |   | | + pure (\x_0 -> \x_1 -> x_0)
+    |     |       |     |   | | ` pure (\x_0 -> x_0)
+    |     |       |     |   | ` ref name
+    |     |       |     |   ` <*>
+    |     |       |     |     + <*>
+    |     |       |     |     | + <*>
+    |     |       |     |     | | + pure (\x_0 -> \x_1 -> x_0)
+    |     |       |     |     | | ` pure (\x_0 -> x_0)
+    |     |       |     |     | ` ref name
+    |     |       |     |     ` <|>
+    |     |       |     |       + <*>
+    |     |       |     |       | + <*>
+    |     |       |     |       | | + pure (\x_0 -> \x_1 -> x_0)
+    |     |       |     |       | | ` pure GHC.Tuple.()
+    |     |       |     |       | ` <*>
+    |     |       |     |       |   + <*>
+    |     |       |     |       |   | + <*>
+    |     |       |     |       |   | | + pure (\x_0 -> \x_1 -> x_0)
+    |     |       |     |       |   | | ` pure (\x_0 -> x_0)
+    |     |       |     |       |   | ` <*>
+    |     |       |     |       |   |   + <*>
+    |     |       |     |       |   |   | + pure (\x_0 -> \x_1 -> x_0)
+    |     |       |     |       |   |   | ` <*>
+    |     |       |     |       |   |   |   + <*>
+    |     |       |     |       |   |   |   | + pure (\x_0 -> \x_1 -> x_0)
+    |     |       |     |       |   |   |   | ` pure ':'
+    |     |       |     |       |   |   |   ` satisfy ((GHC.Classes.==) ':')
+    |     |       |     |       |   |   ` ref name
+    |     |       |     |       |   ` ref name
+    |     |       |     |       ` ref name
+    |     |       |     ` ref name
+    |     |       ` ref name
+    |     ` ref name
+    ` eof
diff --git a/tests/Golden/Grammar/ViewGrammar/G15.expected.txt b/tests/Golden/Grammar/ViewGrammar/G15.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/ViewGrammar/G15.expected.txt
@@ -0,0 +1,22 @@
+lets
+` <*>
+  + pure GHC.Show.show
+  ` <*>
+    + <*>
+    | + pure (\x_0 -> \x_1 -> x_0)
+    | ` <|>
+    |   + <*>
+    |   | + <*>
+    |   | | + pure (\x_0 -> \x_1 -> x_0)
+    |   | | ` pure 'a'
+    |   | ` satisfy ((GHC.Classes.==) 'a')
+    |   ` <*>
+    |     + <*>
+    |     | + pure (\x_0 -> \x_1 -> x_0)
+    |     | ` pure 'b'
+    |     ` satisfy ((GHC.Classes.==) 'b')
+    ` <*>
+      + <*>
+      | + pure (\x_0 -> \x_1 -> x_0)
+      | ` pure 'c'
+      ` satisfy ((GHC.Classes.==) 'c')
diff --git a/tests/Golden/Grammar/ViewGrammar/G16.expected.txt b/tests/Golden/Grammar/ViewGrammar/G16.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/ViewGrammar/G16.expected.txt
@@ -0,0 +1,28 @@
+lets
+` <*>
+  + pure GHC.Show.show
+  ` <*>
+    + <*>
+    | + pure (\x_0 -> \x_1 -> x_0)
+    | ` <|>
+    |   + <|>
+    |   | + <*>
+    |   | | + <*>
+    |   | | | + pure (\x_0 -> \x_1 -> x_0)
+    |   | | | ` pure 'a'
+    |   | | ` satisfy ((GHC.Classes.==) 'a')
+    |   | ` <*>
+    |   |   + <*>
+    |   |   | + pure (\x_0 -> \x_1 -> x_0)
+    |   |   | ` pure 'b'
+    |   |   ` satisfy ((GHC.Classes.==) 'b')
+    |   ` <*>
+    |     + <*>
+    |     | + pure (\x_0 -> \x_1 -> x_0)
+    |     | ` pure 'c'
+    |     ` satisfy ((GHC.Classes.==) 'c')
+    ` <*>
+      + <*>
+      | + pure (\x_0 -> \x_1 -> x_0)
+      | ` pure 'd'
+      ` satisfy ((GHC.Classes.==) 'd')
diff --git a/tests/Golden/Grammar/ViewGrammar/G17.expected.txt b/tests/Golden/Grammar/ViewGrammar/G17.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/ViewGrammar/G17.expected.txt
@@ -0,0 +1,12 @@
+lets
++ let name
+| ` get reg_1
+` <*>
+  + pure GHC.Show.show
+  ` new reg_1
+    + satisfy (\x_0 -> GHC.Types.True)
+    ` <*>
+      + <*>
+      | + pure GHC.Tuple.(,)
+      | ` ref name
+      ` ref name
diff --git a/tests/Golden/Grammar/ViewGrammar/G18.expected.txt b/tests/Golden/Grammar/ViewGrammar/G18.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/ViewGrammar/G18.expected.txt
@@ -0,0 +1,48 @@
+lets
+` <*>
+  + pure GHC.Show.show
+  ` <|>
+    + try
+    | ` <*>
+    |   + <*>
+    |   | + pure (GHC.Types.:)
+    |   | ` <*>
+    |   |   + <*>
+    |   |   | + pure (\x_0 -> \x_1 -> x_0)
+    |   |   | ` pure 'a'
+    |   |   ` satisfy ((GHC.Classes.==) 'a')
+    |   ` <*>
+    |     + <*>
+    |     | + pure (GHC.Types.:)
+    |     | ` <*>
+    |     |   + <*>
+    |     |   | + pure (\x_0 -> \x_1 -> x_0)
+    |     |   | ` pure 'b'
+    |     |   ` satisfy ((GHC.Classes.==) 'b')
+    |     ` <*>
+    |       + <*>
+    |       | + pure (GHC.Types.:)
+    |       | ` <*>
+    |       |   + <*>
+    |       |   | + pure (\x_0 -> \x_1 -> x_0)
+    |       |   | ` pure 'c'
+    |       |   ` satisfy ((GHC.Classes.==) 'c')
+    |       ` pure GHC.Types.[]
+    ` try
+      ` <*>
+        + <*>
+        | + pure (GHC.Types.:)
+        | ` <*>
+        |   + <*>
+        |   | + pure (\x_0 -> \x_1 -> x_0)
+        |   | ` pure 'd'
+        |   ` satisfy ((GHC.Classes.==) 'd')
+        ` <*>
+          + <*>
+          | + pure (GHC.Types.:)
+          | ` <*>
+          |   + <*>
+          |   | + pure (\x_0 -> \x_1 -> x_0)
+          |   | ` pure 'e'
+          |   ` satisfy ((GHC.Classes.==) 'e')
+          ` pure GHC.Types.[]
diff --git a/tests/Golden/Grammar/ViewGrammar/G19.expected.txt b/tests/Golden/Grammar/ViewGrammar/G19.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/ViewGrammar/G19.expected.txt
@@ -0,0 +1,83 @@
+lets
+` <*>
+  + pure GHC.Show.show
+  ` <|>
+    + <|>
+    | + try
+    | | ` <*>
+    | |   + <*>
+    | |   | + pure (GHC.Types.:)
+    | |   | ` <*>
+    | |   |   + <*>
+    | |   |   | + pure (\x_0 -> \x_1 -> x_0)
+    | |   |   | ` pure 'a'
+    | |   |   ` satisfy ((GHC.Classes.==) 'a')
+    | |   ` <*>
+    | |     + <*>
+    | |     | + pure (GHC.Types.:)
+    | |     | ` <*>
+    | |     |   + <*>
+    | |     |   | + pure (\x_0 -> \x_1 -> x_0)
+    | |     |   | ` pure 'b'
+    | |     |   ` satisfy ((GHC.Classes.==) 'b')
+    | |     ` <*>
+    | |       + <*>
+    | |       | + pure (GHC.Types.:)
+    | |       | ` <*>
+    | |       |   + <*>
+    | |       |   | + pure (\x_0 -> \x_1 -> x_0)
+    | |       |   | ` pure 'c'
+    | |       |   ` satisfy ((GHC.Classes.==) 'c')
+    | |       ` pure GHC.Types.[]
+    | ` try
+    |   ` <*>
+    |     + <*>
+    |     | + pure (GHC.Types.:)
+    |     | ` <*>
+    |     |   + <*>
+    |     |   | + pure (\x_0 -> \x_1 -> x_0)
+    |     |   | ` pure 'd'
+    |     |   ` satisfy ((GHC.Classes.==) 'd')
+    |     ` <*>
+    |       + <*>
+    |       | + pure (GHC.Types.:)
+    |       | ` <*>
+    |       |   + <*>
+    |       |   | + pure (\x_0 -> \x_1 -> x_0)
+    |       |   | ` pure 'e'
+    |       |   ` satisfy ((GHC.Classes.==) 'e')
+    |       ` pure GHC.Types.[]
+    ` try
+      ` <*>
+        + <*>
+        | + pure (GHC.Types.:)
+        | ` <*>
+        |   + <*>
+        |   | + pure (\x_0 -> \x_1 -> x_0)
+        |   | ` pure 'f'
+        |   ` satisfy ((GHC.Classes.==) 'f')
+        ` <*>
+          + <*>
+          | + pure (GHC.Types.:)
+          | ` <*>
+          |   + <*>
+          |   | + pure (\x_0 -> \x_1 -> x_0)
+          |   | ` pure 'g'
+          |   ` satisfy ((GHC.Classes.==) 'g')
+          ` <*>
+            + <*>
+            | + pure (GHC.Types.:)
+            | ` <*>
+            |   + <*>
+            |   | + pure (\x_0 -> \x_1 -> x_0)
+            |   | ` pure 'h'
+            |   ` satisfy ((GHC.Classes.==) 'h')
+            ` <*>
+              + <*>
+              | + pure (GHC.Types.:)
+              | ` <*>
+              |   + <*>
+              |   | + pure (\x_0 -> \x_1 -> x_0)
+              |   | ` pure 'i'
+              |   ` satisfy ((GHC.Classes.==) 'i')
+              ` pure GHC.Types.[]
diff --git a/tests/Golden/Grammar/ViewGrammar/G2.expected.txt b/tests/Golden/Grammar/ViewGrammar/G2.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/ViewGrammar/G2.expected.txt
@@ -0,0 +1,29 @@
+lets
+` <*>
+  + pure GHC.Show.show
+  ` try
+    ` <*>
+      + <*>
+      | + pure (GHC.Types.:)
+      | ` <*>
+      |   + <*>
+      |   | + pure (\x_0 -> \x_1 -> x_0)
+      |   | ` pure 'a'
+      |   ` satisfy ((GHC.Classes.==) 'a')
+      ` <*>
+        + <*>
+        | + pure (GHC.Types.:)
+        | ` <*>
+        |   + <*>
+        |   | + pure (\x_0 -> \x_1 -> x_0)
+        |   | ` pure 'b'
+        |   ` satisfy ((GHC.Classes.==) 'b')
+        ` <*>
+          + <*>
+          | + pure (GHC.Types.:)
+          | ` <*>
+          |   + <*>
+          |   | + pure (\x_0 -> \x_1 -> x_0)
+          |   | ` pure 'c'
+          |   ` satisfy ((GHC.Classes.==) 'c')
+          ` pure GHC.Types.[]
diff --git a/tests/Golden/Grammar/ViewGrammar/G20.expected.txt b/tests/Golden/Grammar/ViewGrammar/G20.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/ViewGrammar/G20.expected.txt
@@ -0,0 +1,69 @@
+lets
+` <*>
+  + pure GHC.Show.show
+  ` <*>
+    + <*>
+    | + <*>
+    | | + pure (\x_0 -> \x_1 -> x_0)
+    | | ` pure (\x_0 -> x_0)
+    | ` <|>
+    |   + try
+    |   | ` <*>
+    |   |   + <*>
+    |   |   | + pure (GHC.Types.:)
+    |   |   | ` <*>
+    |   |   |   + <*>
+    |   |   |   | + pure (\x_0 -> \x_1 -> x_0)
+    |   |   |   | ` pure 'a'
+    |   |   |   ` satisfy ((GHC.Classes.==) 'a')
+    |   |   ` <*>
+    |   |     + <*>
+    |   |     | + pure (GHC.Types.:)
+    |   |     | ` <*>
+    |   |     |   + <*>
+    |   |     |   | + pure (\x_0 -> \x_1 -> x_0)
+    |   |     |   | ` pure 'b'
+    |   |     |   ` satisfy ((GHC.Classes.==) 'b')
+    |   |     ` <*>
+    |   |       + <*>
+    |   |       | + pure (GHC.Types.:)
+    |   |       | ` <*>
+    |   |       |   + <*>
+    |   |       |   | + pure (\x_0 -> \x_1 -> x_0)
+    |   |       |   | ` pure 'c'
+    |   |       |   ` satisfy ((GHC.Classes.==) 'c')
+    |   |       ` pure GHC.Types.[]
+    |   ` try
+    |     ` pure GHC.Types.[]
+    ` <*>
+      + <*>
+      | + <*>
+      | | + pure (\x_0 -> \x_1 -> x_0)
+      | | ` pure (\x_0 -> x_0)
+      | ` try
+      |   ` <*>
+      |     + <*>
+      |     | + pure (GHC.Types.:)
+      |     | ` <*>
+      |     |   + <*>
+      |     |   | + pure (\x_0 -> \x_1 -> x_0)
+      |     |   | ` pure 'd'
+      |     |   ` satisfy ((GHC.Classes.==) 'd')
+      |     ` <*>
+      |       + <*>
+      |       | + pure (GHC.Types.:)
+      |       | ` <*>
+      |       |   + <*>
+      |       |   | + pure (\x_0 -> \x_1 -> x_0)
+      |       |   | ` pure 'e'
+      |       |   ` satisfy ((GHC.Classes.==) 'e')
+      |       ` <*>
+      |         + <*>
+      |         | + pure (GHC.Types.:)
+      |         | ` <*>
+      |         |   + <*>
+      |         |   | + pure (\x_0 -> \x_1 -> x_0)
+      |         |   | ` pure 'f'
+      |         |   ` satisfy ((GHC.Classes.==) 'f')
+      |         ` pure GHC.Types.[]
+      ` pure GHC.Tuple.()
diff --git a/tests/Golden/Grammar/ViewGrammar/G3.expected.txt b/tests/Golden/Grammar/ViewGrammar/G3.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/ViewGrammar/G3.expected.txt
@@ -0,0 +1,12 @@
+lets
+` <*>
+  + pure GHC.Show.show
+  ` chainPre
+    + <*>
+    | + pure (GHC.Types.:)
+    | ` <*>
+    |   + <*>
+    |   | + pure (\x_0 -> \x_1 -> x_0)
+    |   | ` pure 'a'
+    |   ` satisfy ((GHC.Classes.==) 'a')
+    ` pure GHC.Types.[]
diff --git a/tests/Golden/Grammar/ViewGrammar/G4.expected.txt b/tests/Golden/Grammar/ViewGrammar/G4.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/ViewGrammar/G4.expected.txt
@@ -0,0 +1,47 @@
+lets
++ let name
+| ` try
+|   ` <*>
+|     + <*>
+|     | + pure (GHC.Types.:)
+|     | ` <*>
+|     |   + <*>
+|     |   | + pure (\x_0 -> \x_1 -> x_0)
+|     |   | ` pure 'a'
+|     |   ` satisfy ((GHC.Classes.==) 'a')
+|     ` <*>
+|       + <*>
+|       | + pure (GHC.Types.:)
+|       | ` <*>
+|       |   + <*>
+|       |   | + pure (\x_0 -> \x_1 -> x_0)
+|       |   | ` pure 'b'
+|       |   ` satisfy ((GHC.Classes.==) 'b')
+|       ` <*>
+|         + <*>
+|         | + pure (GHC.Types.:)
+|         | ` <*>
+|         |   + <*>
+|         |   | + pure (\x_0 -> \x_1 -> x_0)
+|         |   | ` pure 'c'
+|         |   ` satisfy ((GHC.Classes.==) 'c')
+|         ` <*>
+|           + <*>
+|           | + pure (GHC.Types.:)
+|           | ` <*>
+|           |   + <*>
+|           |   | + pure (\x_0 -> \x_1 -> x_0)
+|           |   | ` pure 'd'
+|           |   ` satisfy ((GHC.Classes.==) 'd')
+|           ` pure GHC.Types.[]
+` <*>
+  + pure GHC.Show.show
+  ` <*>
+    + <*>
+    | + pure (GHC.Types.:)
+    | ` ref name
+    ` chainPre
+      + <*>
+      | + pure (GHC.Types.:)
+      | ` ref name
+      ` pure GHC.Types.[]
diff --git a/tests/Golden/Grammar/ViewGrammar/G5.expected.txt b/tests/Golden/Grammar/ViewGrammar/G5.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/ViewGrammar/G5.expected.txt
@@ -0,0 +1,51 @@
+lets
++ let name
+| ` try
+|   ` <*>
+|     + <*>
+|     | + pure (GHC.Types.:)
+|     | ` <*>
+|     |   + <*>
+|     |   | + pure (\x_0 -> \x_1 -> x_0)
+|     |   | ` pure 'a'
+|     |   ` satisfy ((GHC.Classes.==) 'a')
+|     ` <*>
+|       + <*>
+|       | + pure (GHC.Types.:)
+|       | ` <*>
+|       |   + <*>
+|       |   | + pure (\x_0 -> \x_1 -> x_0)
+|       |   | ` pure 'b'
+|       |   ` satisfy ((GHC.Classes.==) 'b')
+|       ` <*>
+|         + <*>
+|         | + pure (GHC.Types.:)
+|         | ` <*>
+|         |   + <*>
+|         |   | + pure (\x_0 -> \x_1 -> x_0)
+|         |   | ` pure 'c'
+|         |   ` satisfy ((GHC.Classes.==) 'c')
+|         ` <*>
+|           + <*>
+|           | + pure (GHC.Types.:)
+|           | ` <*>
+|           |   + <*>
+|           |   | + pure (\x_0 -> \x_1 -> x_0)
+|           |   | ` pure 'd'
+|           |   ` satisfy ((GHC.Classes.==) 'd')
+|           ` pure GHC.Types.[]
+` <*>
+  + pure GHC.Show.show
+  ` <*>
+    + <*>
+    | + pure (\x_0 -> \x_1 -> x_0)
+    | ` <*>
+    |   + <*>
+    |   | + pure (GHC.Types.:)
+    |   | ` ref name
+    |   ` chainPre
+    |     + <*>
+    |     | + pure (GHC.Types.:)
+    |     | ` ref name
+    |     ` pure GHC.Types.[]
+    ` eof
diff --git a/tests/Golden/Grammar/ViewGrammar/G6.expected.txt b/tests/Golden/Grammar/ViewGrammar/G6.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/ViewGrammar/G6.expected.txt
@@ -0,0 +1,38 @@
+lets
+` <*>
+  + pure GHC.Show.show
+  ` <|>
+    + <*>
+    | + <*>
+    | | + pure (GHC.Types.:)
+    | | ` <*>
+    | |   + <*>
+    | |   | + pure (\x_0 -> \x_1 -> x_0)
+    | |   | ` pure 'a'
+    | |   ` satisfy ((GHC.Classes.==) 'a')
+    | ` <*>
+    |   + <*>
+    |   | + pure (GHC.Types.:)
+    |   | ` <*>
+    |   |   + <*>
+    |   |   | + pure (\x_0 -> \x_1 -> x_0)
+    |   |   | ` pure 'a'
+    |   |   ` satisfy ((GHC.Classes.==) 'a')
+    |   ` pure GHC.Types.[]
+    ` <*>
+      + <*>
+      | + pure (GHC.Types.:)
+      | ` <*>
+      |   + <*>
+      |   | + pure (\x_0 -> \x_1 -> x_0)
+      |   | ` pure 'a'
+      |   ` satisfy ((GHC.Classes.==) 'a')
+      ` <*>
+        + <*>
+        | + pure (GHC.Types.:)
+        | ` <*>
+        |   + <*>
+        |   | + pure (\x_0 -> \x_1 -> x_0)
+        |   | ` pure 'b'
+        |   ` satisfy ((GHC.Classes.==) 'b')
+        ` pure GHC.Types.[]
diff --git a/tests/Golden/Grammar/ViewGrammar/G7.expected.txt b/tests/Golden/Grammar/ViewGrammar/G7.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/ViewGrammar/G7.expected.txt
@@ -0,0 +1,40 @@
+lets
+` <*>
+  + pure GHC.Show.show
+  ` <|>
+    + try
+    | ` <*>
+    |   + <*>
+    |   | + pure (GHC.Types.:)
+    |   | ` <*>
+    |   |   + <*>
+    |   |   | + pure (\x_0 -> \x_1 -> x_0)
+    |   |   | ` pure 'a'
+    |   |   ` satisfy ((GHC.Classes.==) 'a')
+    |   ` <*>
+    |     + <*>
+    |     | + pure (GHC.Types.:)
+    |     | ` <*>
+    |     |   + <*>
+    |     |   | + pure (\x_0 -> \x_1 -> x_0)
+    |     |   | ` pure 'a'
+    |     |   ` satisfy ((GHC.Classes.==) 'a')
+    |     ` pure GHC.Types.[]
+    ` try
+      ` <*>
+        + <*>
+        | + pure (GHC.Types.:)
+        | ` <*>
+        |   + <*>
+        |   | + pure (\x_0 -> \x_1 -> x_0)
+        |   | ` pure 'a'
+        |   ` satisfy ((GHC.Classes.==) 'a')
+        ` <*>
+          + <*>
+          | + pure (GHC.Types.:)
+          | ` <*>
+          |   + <*>
+          |   | + pure (\x_0 -> \x_1 -> x_0)
+          |   | ` pure 'b'
+          |   ` satisfy ((GHC.Classes.==) 'b')
+          ` pure GHC.Types.[]
diff --git a/tests/Golden/Grammar/ViewGrammar/G8.expected.txt b/tests/Golden/Grammar/ViewGrammar/G8.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/ViewGrammar/G8.expected.txt
@@ -0,0 +1,16 @@
+lets
+` <*>
+  + pure GHC.Show.show
+  ` <*>
+    + <*>
+    | + pure (\x_0 -> \x_1 -> x_0)
+    | ` chainPre
+    |   + <*>
+    |   | + pure (GHC.Types.:)
+    |   | ` <*>
+    |   |   + <*>
+    |   |   | + pure (\x_0 -> \x_1 -> x_0)
+    |   |   | ` pure 'r'
+    |   |   ` satisfy ((GHC.Classes.==) 'r')
+    |   ` pure GHC.Types.[]
+    ` eof
diff --git a/tests/Golden/Grammar/ViewGrammar/G9.expected.txt b/tests/Golden/Grammar/ViewGrammar/G9.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Grammar/ViewGrammar/G9.expected.txt
@@ -0,0 +1,4 @@
+lets
+` <*>
+  + pure GHC.Show.show
+  ` eof
diff --git a/tests/Golden/Machine.hs b/tests/Golden/Machine.hs
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Machine.hs
@@ -0,0 +1,41 @@
+{-# LANGUAGE DataKinds #-} -- For using P.viewMachine
+{-# LANGUAGE FlexibleContexts #-} -- For machines
+{-# LANGUAGE GADTs #-} -- For machines
+{-# LANGUAGE TypeApplications #-} -- For P.viewMachine
+module Golden.Machine where
+
+import Data.Bool (Bool(..))
+import Data.Char (Char)
+import Control.Monad (Monad(..))
+import Data.Int (Int)
+import Data.Function (($), (.))
+import Data.Functor ((<$>))
+import Data.Semigroup (Semigroup(..))
+import Data.String (String, IsString(..))
+import Data.Text (Text)
+import System.IO (IO)
+import Test.Tasty
+import Test.Tasty.Golden
+import Text.Show (Show(..))
+import qualified Data.List as List
+
+import Golden.Utils
+import Grammar
+import qualified Symantic.Parser as P
+
+goldens :: TestTree
+goldens = testGroup "Machine" $
+  (\f -> List.zipWith f (machines @Text) [1::Int ..]) $ \mach g ->
+  let machineFile = getGoldenDir $ "Machine/G"<>show g<>".expected.txt" in
+  goldenVsStringDiff ("G"<>show g) goldenDiff machineFile $ do
+    resetTHNameCounter
+    m <- mach
+    return $ fromString $ show $
+      P.viewMachine @'False m
+
+machines ::
+  P.InputToken inp ~ Char =>
+  P.Cursorable (P.Cursor inp) =>
+  P.Machinable (P.InputToken inp) repr =>
+  [IO (repr inp '[] String)]
+machines = P.optimizeMachine . P.optimizeGrammar <$> grammars
diff --git a/tests/Golden/Machine/G1.expected.txt b/tests/Golden/Machine/G1.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Machine/G1.expected.txt
@@ -0,0 +1,25 @@
+pushValue (\x_0 -> GHC.Show.show 'a')
+  minReads=1
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+comment "satisfy ((GHC.Classes.==) 'a')"
+  minReads=1
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+read ((GHC.Classes.==) 'a')
+  minReads=1
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+  minReads=0
+  mayRaise=[]
+  alwaysRaise=[]
+  freeRegs=[]
+ret
+  minReads=0
+  mayRaise=[]
+  alwaysRaise=[]
+  freeRegs=[]
diff --git a/tests/Golden/Machine/G10.expected.txt b/tests/Golden/Machine/G10.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Machine/G10.expected.txt
@@ -0,0 +1,111 @@
+pushValue GHC.Show.show
+  minReads=1
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+join join
+  minReads=0
+  mayRaise=[]
+  alwaysRaise=[]
+  freeRegs=[]
+| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| ret
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+catch ExceptionFailure
+  minReads=1
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+| <catchScope>
+| | pushValue (\x_0 -> 'a')
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | comment "satisfy ((GHC.Classes.==) 'a')"
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | read ((GHC.Classes.==) 'a')
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | commit ExceptionFailure
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | refJoin join
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| <onException ExceptionFailure>
+| | comment "raiseAgainIfConsumed"
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | saveInput
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| |                                                                j_1
+| |                                                                _) -> i_0 GHC.Classes.== j_1)
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | choicesBranch
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | | <branch (\x_0 -> x_0)>
+| | | | pushValue (\x_0 -> 'b')
+| | | |   minReads=1
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | comment "satisfy ((GHC.Classes.==) 'b')"
+| | | |   minReads=1
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | read ((GHC.Classes.==) 'b')
+| | | |   minReads=1
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | refJoin join
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | <default>
+| | | | fail []
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
diff --git a/tests/Golden/Machine/G11.expected.txt b/tests/Golden/Machine/G11.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Machine/G11.expected.txt
@@ -0,0 +1,141 @@
+pushValue (\x_0 -> \x_1 -> GHC.Show.show x_0)
+  minReads=1
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+pushValue (\x_0 -> x_0)
+  minReads=1
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+newRegister reg
+  minReads=1
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+iter loop
+  minReads=1
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[reg]
+| <ok>
+| | pushValue (\x_0 -> (GHC.Types.:) 'a')
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | comment "satisfy ((GHC.Classes.==) 'a')"
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | read ((GHC.Classes.==) 'a')
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | pushValue (\x_0 -> \x_1 -> \x_2 -> x_1 (x_0 x_2))
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | lift2Value (\x_0 -> \x_1 -> x_1 x_0)
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | readRegister reg
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | writeRegister reg
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | jump loop
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| <ko>
+| | comment "raiseAgainIfConsumed"
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | saveInput
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| |                                                                j_1
+| |                                                                _) -> i_0 GHC.Classes.== j_1)
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | choicesBranch
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | | <branch (\x_0 -> x_0)>
+| | | | readRegister reg
+| | | |   minReads=1
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | pushValue GHC.Types.[]
+| | | |   minReads=1
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=1
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=1
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | comment "satisfy ((GHC.Classes.==) 'b')"
+| | | |   minReads=1
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | read ((GHC.Classes.==) 'b')
+| | | |   minReads=1
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | ret
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | <default>
+| | | | fail []
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
diff --git a/tests/Golden/Machine/G12.expected.txt b/tests/Golden/Machine/G12.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Machine/G12.expected.txt
@@ -0,0 +1,259 @@
+pushValue (\x_0 -> \x_1 -> GHC.Show.show x_0)
+  minReads=0
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+pushValue (\x_0 -> x_0)
+  minReads=0
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+newRegister reg
+  minReads=0
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+iter loop
+  minReads=0
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[reg]
+| <ok>
+| | pushValue (GHC.Types.:)
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | comment "satisfy (\\t_0 -> ('a' GHC.Classes.== t_0) GHC.Classes.|| (('b' GHC.Classes.== t_0) GHC.Classes.|| (('c' GHC.Classes.== t_0) GHC.Classes.|| (('d' GHC.Classes.== t_0) GHC.Classes.|| GHC.Types.False))))"
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | read (\t_0 -> ('a' GHC.Classes.== t_0) GHC.Classes.|| (('b' GHC.Classes.== t_0) GHC.Classes.|| (('c' GHC.Classes.== t_0) GHC.Classes.|| (('d' GHC.Classes.== t_0) GHC.Classes.|| GHC.Types.False))))
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | pushValue (\x_0 -> \x_1 -> \x_2 -> x_1 (x_0 x_2))
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | lift2Value (\x_0 -> \x_1 -> x_1 x_0)
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | readRegister reg
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | writeRegister reg
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | jump loop
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| <ko>
+| | comment "raiseAgainIfConsumed"
+| |   minReads=0
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | saveInput
+| |   minReads=0
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| |                                                                j_1
+| |                                                                _) -> i_0 GHC.Classes.== j_1)
+| |   minReads=0
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | choicesBranch
+| |   minReads=0
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | | <branch (\x_0 -> x_0)>
+| | | | readRegister reg
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | pushValue GHC.Types.[]
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | join join
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | ret
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | catch ExceptionFailure
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | | <catchScope>
+| | | | | | comment "negLook"
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | catch ExceptionFailure
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | | <catchScope>
+| | | | | | | | comment "negLook.ahead"
+| | | | | | | |   minReads=1
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | saveInput
+| | | | | | | |   minReads=1
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | comment "satisfy ((\\x_0 -> \\x_1 -> x_0) GHC.Types.True)"
+| | | | | | | |   minReads=1
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | read (\x_0 -> GHC.Types.True)
+| | | | | | | |   minReads=1
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | popValue
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | commit ExceptionFailure
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | loadInput
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | fail []
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | <onException ExceptionFailure>
+| | | | | | | | comment "negLook.reset"
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | loadInput
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | pushValue GHC.Tuple.()
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | commit ExceptionFailure
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | refJoin join
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | <onException ExceptionFailure>
+| | | | | | comment "raiseAgainIfConsumed"
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | saveInput
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| | | | | |                                                                j_1
+| | | | | |                                                                _) -> i_0 GHC.Classes.== j_1)
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | choicesBranch
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | | <branch (\x_0 -> x_0)>
+| | | | | | | | comment "eof.fail"
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | fail [FailureEnd]
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | <default>
+| | | | | | | | fail []
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | <default>
+| | | | fail []
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
diff --git a/tests/Golden/Machine/G13.expected.txt b/tests/Golden/Machine/G13.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Machine/G13.expected.txt
@@ -0,0 +1,535 @@
+let name
+  minReads=0
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+| pushValue (\x_0 -> GHC.Tuple.())
+|   minReads=0
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| pushValue (\x_0 -> x_0)
+|   minReads=0
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| newRegister reg
+|   minReads=0
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| iter loop
+|   minReads=0
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[reg]
+| | <ok>
+| | | pushValue (\x_0 -> \x_1 -> x_1)
+| | |   minReads=1
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | comment "satisfy (\\c_0 -> GHC.Classes.not (('<' GHC.Classes.== c_0) GHC.Classes.|| (('>' GHC.Classes.== c_0) GHC.Classes.|| (('+' GHC.Classes.== c_0) GHC.Classes.|| (('-' GHC.Classes.== c_0) GHC.Classes.|| ((',' GHC.Classes.== c_0) GHC.Classes.|| (('.' GHC.Classes.== c_0) GHC.Classes.|| (('[' GHC.Classes.== c_0) GHC.Classes.|| ((']' GHC.Classes.== c_0) GHC.Classes.|| GHC.Types.False)))))))))"
+| | |   minReads=1
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | read (\c_0 -> GHC.Classes.not (('<' GHC.Classes.== c_0) GHC.Classes.|| (('>' GHC.Classes.== c_0) GHC.Classes.|| (('+' GHC.Classes.== c_0) GHC.Classes.|| (('-' GHC.Classes.== c_0) GHC.Classes.|| ((',' GHC.Classes.== c_0) GHC.Classes.|| (('.' GHC.Classes.== c_0) GHC.Classes.|| (('[' GHC.Classes.== c_0) GHC.Classes.|| ((']' GHC.Classes.== c_0) GHC.Classes.|| GHC.Types.False)))))))))
+| | |   minReads=1
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | |   minReads=0
+| | |   mayRaise=[]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | readRegister reg
+| | |   minReads=0
+| | |   mayRaise=[]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | |   minReads=0
+| | |   mayRaise=[]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | writeRegister reg
+| | |   minReads=0
+| | |   mayRaise=[]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | jump loop
+| | |   minReads=0
+| | |   mayRaise=[]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | <ko>
+| | | comment "raiseAgainIfConsumed"
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | saveInput
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| | |                                                                j_1
+| | |                                                                _) -> i_0 GHC.Classes.== j_1)
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | choicesBranch
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | | <branch (\x_0 -> x_0)>
+| | | | | readRegister reg
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | pushValue GHC.Tuple.()
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | ret
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | <default>
+| | | | | fail []
+| | | | |   minReads=0
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[ExceptionFailure]
+| | | | |   freeRegs=[]
+let name
+  minReads=0
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+| pushValue (\x_0 -> x_0)
+|   minReads=0
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| newRegister reg
+|   minReads=0
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| iter loop
+|   minReads=0
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[reg]
+| | <ok>
+| | | pushValue (\x_0 -> \x_1 -> (GHC.Types.:) x_0)
+| | |   minReads=1
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | join join
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | call name
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | pushValue (\x_0 -> \x_1 -> \x_2 -> x_1 (x_0 x_2))
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | lift2Value (\x_0 -> \x_1 -> x_1 x_0)
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | readRegister reg
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | writeRegister reg
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | jump loop
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | comment "look"
+| | |   minReads=1
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | saveInput
+| | |   minReads=1
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | comment "satisfy ((\\x_0 -> \\x_1 -> x_0) GHC.Types.True)"
+| | |   minReads=1
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | read (\x_0 -> GHC.Types.True)
+| | |   minReads=1
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | swapValue
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | loadInput
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | choicesBranch
+| | |   minReads=1
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | | <branch (\x_0 -> (\x_1 -> \x_2 -> (GHC.Classes.==) x_1 x_2) '<' x_0)>
+| | | | | pushValue (\x_0 -> Parsers.Brainfuck.Types.Backward)
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | comment "satisfy ((\\x_0 -> \\x_1 -> x_0) GHC.Types.True)"
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | read (\x_0 -> GHC.Types.True)
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=0
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | refJoin join
+| | | | |   minReads=0
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | <branch (\x_0 -> (\x_1 -> \x_2 -> (GHC.Classes.==) x_1 x_2) '>' x_0)>
+| | | | | pushValue (\x_0 -> Parsers.Brainfuck.Types.Forward)
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | comment "satisfy ((\\x_0 -> \\x_1 -> x_0) GHC.Types.True)"
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | read (\x_0 -> GHC.Types.True)
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=0
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | refJoin join
+| | | | |   minReads=0
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | <branch (\x_0 -> (\x_1 -> \x_2 -> (GHC.Classes.==) x_1 x_2) '+' x_0)>
+| | | | | pushValue (\x_0 -> Parsers.Brainfuck.Types.Increment)
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | comment "satisfy ((\\x_0 -> \\x_1 -> x_0) GHC.Types.True)"
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | read (\x_0 -> GHC.Types.True)
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=0
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | refJoin join
+| | | | |   minReads=0
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | <branch (\x_0 -> (\x_1 -> \x_2 -> (GHC.Classes.==) x_1 x_2) '-' x_0)>
+| | | | | pushValue (\x_0 -> Parsers.Brainfuck.Types.Decrement)
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | comment "satisfy ((\\x_0 -> \\x_1 -> x_0) GHC.Types.True)"
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | read (\x_0 -> GHC.Types.True)
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=0
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | refJoin join
+| | | | |   minReads=0
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | <branch (\x_0 -> (\x_1 -> \x_2 -> (GHC.Classes.==) x_1 x_2) ',' x_0)>
+| | | | | pushValue (\x_0 -> Parsers.Brainfuck.Types.Input)
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | comment "satisfy ((\\x_0 -> \\x_1 -> x_0) GHC.Types.True)"
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | read (\x_0 -> GHC.Types.True)
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=0
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | refJoin join
+| | | | |   minReads=0
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | <branch (\x_0 -> (\x_1 -> \x_2 -> (GHC.Classes.==) x_1 x_2) '.' x_0)>
+| | | | | pushValue (\x_0 -> Parsers.Brainfuck.Types.Output)
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | comment "satisfy ((\\x_0 -> \\x_1 -> x_0) GHC.Types.True)"
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | read (\x_0 -> GHC.Types.True)
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=0
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | refJoin join
+| | | | |   minReads=0
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | <branch (\x_0 -> (\x_1 -> \x_2 -> (GHC.Classes.==) x_1 x_2) '[' x_0)>
+| | | | | pushValue (\x_0 -> \x_1 -> \x_2 -> \x_3 -> Parsers.Brainfuck.Types.Loop x_2)
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | comment "satisfy ((\\x_0 -> \\x_1 -> x_0) GHC.Types.True)"
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | read (\x_0 -> GHC.Types.True)
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=0
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | call name
+| | | | |   minReads=0
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | call name
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | comment "satisfy ((GHC.Classes.==) ']')"
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | read ((GHC.Classes.==) ']')
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=0
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | refJoin join
+| | | | |   minReads=0
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | <default>
+| | | | | fail [FailureEmpty]
+| | | | |   minReads=0
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[ExceptionFailure]
+| | | | |   freeRegs=[]
+| | <ko>
+| | | comment "raiseAgainIfConsumed"
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | saveInput
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| | |                                                                j_1
+| | |                                                                _) -> i_0 GHC.Classes.== j_1)
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | choicesBranch
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | | <branch (\x_0 -> x_0)>
+| | | | | readRegister reg
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | pushValue GHC.Types.[]
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | ret
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | <default>
+| | | | | fail []
+| | | | |   minReads=0
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[ExceptionFailure]
+| | | | |   freeRegs=[]
+pushValue (\x_0 -> \x_1 -> GHC.Show.show x_1)
+  minReads=0
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+call name
+  minReads=0
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+  minReads=0
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+call name
+  minReads=0
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+  minReads=0
+  mayRaise=[]
+  alwaysRaise=[]
+  freeRegs=[]
+ret
+  minReads=0
+  mayRaise=[]
+  alwaysRaise=[]
+  freeRegs=[]
diff --git a/tests/Golden/Machine/G14.expected.txt b/tests/Golden/Machine/G14.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Machine/G14.expected.txt
@@ -0,0 +1,3649 @@
+let name
+  minReads=0
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+| catch ExceptionFailure
+|   minReads=0
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| | <catchScope>
+| | | pushValue (\x_0 -> \x_1 -> \x_2 -> GHC.Tuple.())
+| | |   minReads=2
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | call name
+| | |   minReads=2
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | pushValue (\x_0 -> x_0)
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | newRegister reg
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | iter loop
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | | <ok>
+| | | | | pushValue (\x_0 -> \x_1 -> \x_2 -> x_0 x_2)
+| | | | |   minReads=4
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | call name
+| | | | |   minReads=4
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=4
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | call name
+| | | | |   minReads=4
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=2
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | call name
+| | | | |   minReads=2
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | readRegister reg
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | writeRegister reg
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | jump loop
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | <ko>
+| | | | | comment "raiseAgainIfConsumed"
+| | | | |   minReads=0
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | saveInput
+| | | | |   minReads=0
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| | | | |                                                                j_1
+| | | | |                                                                _) -> i_0 GHC.Classes.== j_1)
+| | | | |   minReads=0
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | choicesBranch
+| | | | |   minReads=0
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | | <branch (\x_0 -> x_0)>
+| | | | | | | readRegister reg
+| | | | | | |   minReads=0
+| | | | | | |   mayRaise=[]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[reg]
+| | | | | | | call name
+| | | | | | |   minReads=0
+| | | | | | |   mayRaise=[]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[]
+| | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | |   minReads=0
+| | | | | | |   mayRaise=[]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[]
+| | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | |   minReads=0
+| | | | | | |   mayRaise=[]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[]
+| | | | | | | call name
+| | | | | | |   minReads=0
+| | | | | | |   mayRaise=[]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[]
+| | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | |   minReads=0
+| | | | | | |   mayRaise=[]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[]
+| | | | | | | commit ExceptionFailure
+| | | | | | |   minReads=0
+| | | | | | |   mayRaise=[]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[]
+| | | | | | | ret
+| | | | | | |   minReads=0
+| | | | | | |   mayRaise=[]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[]
+| | | | | | <default>
+| | | | | | | fail []
+| | | | | | |   minReads=0
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | |   freeRegs=[]
+| | <onException ExceptionFailure>
+| | | comment "raiseAgainIfConsumed"
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | saveInput
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| | |                                                                j_1
+| | |                                                                _) -> i_0 GHC.Classes.== j_1)
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | choicesBranch
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | | <branch (\x_0 -> x_0)>
+| | | | | jump name
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | <default>
+| | | | | fail []
+| | | | |   minReads=0
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[ExceptionFailure]
+| | | | |   freeRegs=[]
+let name
+  minReads=0
+  mayRaise=[]
+  alwaysRaise=[]
+  freeRegs=[]
+| pushValue (\x_0 -> \x_1 -> x_1)
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| ret
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+let name
+  minReads=0
+  mayRaise=[]
+  alwaysRaise=[]
+  freeRegs=[]
+| pushValue GHC.Tuple.()
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| ret
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+let name
+  minReads=0
+  mayRaise=[]
+  alwaysRaise=[]
+  freeRegs=[]
+| pushValue GHC.Tuple.()
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| ret
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+let name
+  minReads=1
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+| comment "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))))))))))"
+|   minReads=1
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| read (\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))))))))))
+|   minReads=1
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| ret
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+let name
+  minReads=1
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+| pushValue (\x_0 -> \x_1 -> GHC.Tuple.())
+|   minReads=1
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| call name
+|   minReads=1
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+|   minReads=0
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| pushValue (\x_0 -> x_0)
+|   minReads=0
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| newRegister reg
+|   minReads=0
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| iter loop
+|   minReads=0
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[reg]
+| | <ok>
+| | | pushValue (\x_0 -> \x_1 -> x_1)
+| | |   minReads=1
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | call name
+| | |   minReads=1
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | |   minReads=0
+| | |   mayRaise=[]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | readRegister reg
+| | |   minReads=0
+| | |   mayRaise=[]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | |   minReads=0
+| | |   mayRaise=[]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | writeRegister reg
+| | |   minReads=0
+| | |   mayRaise=[]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | jump loop
+| | |   minReads=0
+| | |   mayRaise=[]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | <ko>
+| | | comment "raiseAgainIfConsumed"
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | saveInput
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| | |                                                                j_1
+| | |                                                                _) -> i_0 GHC.Classes.== j_1)
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | choicesBranch
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | | <branch (\x_0 -> x_0)>
+| | | | | readRegister reg
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | pushValue GHC.Tuple.()
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | ret
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | <default>
+| | | | | fail []
+| | | | |   minReads=0
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[ExceptionFailure]
+| | | | |   freeRegs=[]
+let name
+  minReads=1
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+| pushValue (\x_0 -> \x_1 -> x_1)
+|   minReads=1
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| comment "satisfy GHC.Unicode.isSpace"
+|   minReads=1
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| read GHC.Unicode.isSpace
+|   minReads=1
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| call name
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| ret
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+let name
+  minReads=2
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+| catch ExceptionFailure
+|   minReads=2
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| | <catchScope>
+| | | pushValue (\x_0 -> \x_1 -> x_1)
+| | |   minReads=2
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | join join
+| | |   minReads=1
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=1
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | call name
+| | | |   minReads=1
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | commit ExceptionFailure
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | ret
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | catch ExceptionFailure
+| | |   minReads=2
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | | <catchScope>
+| | | | | pushValue (\x_0 -> '0')
+| | | | |   minReads=2
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | comment "satisfy ((GHC.Classes.==) '0')"
+| | | | |   minReads=2
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | read ((GHC.Classes.==) '0')
+| | | | |   minReads=2
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | commit ExceptionFailure
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | refJoin join
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | <onException ExceptionFailure>
+| | | | | comment "raiseAgainIfConsumed"
+| | | | |   minReads=2
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | saveInput
+| | | | |   minReads=2
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| | | | |                                                                j_1
+| | | | |                                                                _) -> i_0 GHC.Classes.== j_1)
+| | | | |   minReads=2
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | choicesBranch
+| | | | |   minReads=2
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | | <branch (\x_0 -> x_0)>
+| | | | | | | pushValue (\x_0 -> '1')
+| | | | | | |   minReads=2
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[]
+| | | | | | | comment "satisfy ((GHC.Classes.==) '1')"
+| | | | | | |   minReads=2
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[]
+| | | | | | | read ((GHC.Classes.==) '1')
+| | | | | | |   minReads=2
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[]
+| | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | |   minReads=1
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[]
+| | | | | | | refJoin join
+| | | | | | |   minReads=1
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[]
+| | | | | | <default>
+| | | | | | | fail []
+| | | | | | |   minReads=0
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | |   freeRegs=[]
+| | <onException ExceptionFailure>
+| | | comment "raiseAgainIfConsumed"
+| | |   minReads=2
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | saveInput
+| | |   minReads=2
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| | |                                                                j_1
+| | |                                                                _) -> i_0 GHC.Classes.== j_1)
+| | |   minReads=2
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | choicesBranch
+| | |   minReads=2
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | | <branch (\x_0 -> x_0)>
+| | | | | catch ExceptionFailure
+| | | | |   minReads=2
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | | <catchScope>
+| | | | | | | pushValue (\x_0 -> \x_1 -> \x_2 -> \x_3 -> x_1)
+| | | | | | |   minReads=4
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[]
+| | | | | | | comment "satisfy ((GHC.Classes.==) '\\'')"
+| | | | | | |   minReads=4
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[]
+| | | | | | | read ((GHC.Classes.==) '\'')
+| | | | | | |   minReads=4
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[]
+| | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | |   minReads=3
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[]
+| | | | | | | join join
+| | | | | | |   minReads=2
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[]
+| | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | |   minReads=2
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | comment "satisfy ((GHC.Classes.==) '\\'')"
+| | | | | | | |   minReads=2
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | read ((GHC.Classes.==) '\'')
+| | | | | | | |   minReads=2
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | |   minReads=1
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | call name
+| | | | | | | |   minReads=1
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | commit ExceptionFailure
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | ret
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | catch ExceptionFailure
+| | | | | | |   minReads=3
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[]
+| | | | | | | | <catchScope>
+| | | | | | | | | pushValue (\x_0 -> \x_1 -> x_1)
+| | | | | | | | |   minReads=3
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | |   alwaysRaise=[]
+| | | | | | | | |   freeRegs=[]
+| | | | | | | | | comment "satisfy Parsers.Nandlang.nandStringLetter"
+| | | | | | | | |   minReads=3
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | |   alwaysRaise=[]
+| | | | | | | | |   freeRegs=[]
+| | | | | | | | | read Parsers.Nandlang.nandStringLetter
+| | | | | | | | |   minReads=3
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | |   alwaysRaise=[]
+| | | | | | | | |   freeRegs=[]
+| | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | |   minReads=2
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | |   alwaysRaise=[]
+| | | | | | | | |   freeRegs=[]
+| | | | | | | | | call name
+| | | | | | | | |   minReads=2
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | |   alwaysRaise=[]
+| | | | | | | | |   freeRegs=[]
+| | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | |   minReads=2
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | |   alwaysRaise=[]
+| | | | | | | | |   freeRegs=[]
+| | | | | | | | | commit ExceptionFailure
+| | | | | | | | |   minReads=2
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | |   alwaysRaise=[]
+| | | | | | | | |   freeRegs=[]
+| | | | | | | | | refJoin join
+| | | | | | | | |   minReads=2
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | |   alwaysRaise=[]
+| | | | | | | | |   freeRegs=[]
+| | | | | | | | <onException ExceptionFailure>
+| | | | | | | | | comment "raiseAgainIfConsumed"
+| | | | | | | | |   minReads=4
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | |   alwaysRaise=[]
+| | | | | | | | |   freeRegs=[]
+| | | | | | | | | saveInput
+| | | | | | | | |   minReads=4
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | |   alwaysRaise=[]
+| | | | | | | | |   freeRegs=[]
+| | | | | | | | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| | | | | | | | |                                                                j_1
+| | | | | | | | |                                                                _) -> i_0 GHC.Classes.== j_1)
+| | | | | | | | |   minReads=4
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | |   alwaysRaise=[]
+| | | | | | | | |   freeRegs=[]
+| | | | | | | | | choicesBranch
+| | | | | | | | |   minReads=4
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | |   alwaysRaise=[]
+| | | | | | | | |   freeRegs=[]
+| | | | | | | | | | <branch (\x_0 -> x_0)>
+| | | | | | | | | | | pushValue (\x_0 -> \x_1 -> \x_2 -> x_2)
+| | | | | | | | | | |   minReads=4
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | comment "satisfy ((GHC.Classes.==) '\\\\')"
+| | | | | | | | | | |   minReads=4
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | read ((GHC.Classes.==) '\\')
+| | | | | | | | | | |   minReads=4
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | |   minReads=3
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | comment "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))))))"
+| | | | | | | | | | |   minReads=3
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | read (\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))))))
+| | | | | | | | | | |   minReads=3
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | |   minReads=2
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | call name
+| | | | | | | | | | |   minReads=2
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | |   minReads=2
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | refJoin join
+| | | | | | | | | | |   minReads=2
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | <default>
+| | | | | | | | | | | fail []
+| | | | | | | | | | |   minReads=0
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | <onException ExceptionFailure>
+| | | | | | | comment "raiseAgainIfConsumed"
+| | | | | | |   minReads=2
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[]
+| | | | | | | saveInput
+| | | | | | |   minReads=2
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[]
+| | | | | | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| | | | | | |                                                                j_1
+| | | | | | |                                                                _) -> i_0 GHC.Classes.== j_1)
+| | | | | | |   minReads=2
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[]
+| | | | | | | choicesBranch
+| | | | | | |   minReads=2
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[]
+| | | | | | | | <branch (\x_0 -> x_0)>
+| | | | | | | | | pushValue (\x_0 -> \x_1 -> x_1)
+| | | | | | | | |   minReads=2
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | |   alwaysRaise=[]
+| | | | | | | | |   freeRegs=[]
+| | | | | | | | | call name
+| | | | | | | | |   minReads=2
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | |   alwaysRaise=[]
+| | | | | | | | |   freeRegs=[]
+| | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | |   minReads=0
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | |   alwaysRaise=[]
+| | | | | | | | |   freeRegs=[]
+| | | | | | | | | join join
+| | | | | | | | |   minReads=0
+| | | | | | | | |   mayRaise=[]
+| | | | | | | | |   alwaysRaise=[]
+| | | | | | | | |   freeRegs=[]
+| | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | |   minReads=0
+| | | | | | | | | |   mayRaise=[]
+| | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | ret
+| | | | | | | | | |   minReads=0
+| | | | | | | | | |   mayRaise=[]
+| | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | |   freeRegs=[]
+| | | | | | | | | catch ExceptionFailure
+| | | | | | | | |   minReads=0
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | |   alwaysRaise=[]
+| | | | | | | | |   freeRegs=[]
+| | | | | | | | | | <catchScope>
+| | | | | | | | | | | pushValue (\x_0 -> GHC.Tuple.())
+| | | | | | | | | | |   minReads=2
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | join join
+| | | | | | | | | | |   minReads=0
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | commit ExceptionFailure
+| | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | refJoin join
+| | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | catch ExceptionFailure
+| | | | | | | | | | |   minReads=2
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | <catchScope>
+| | | | | | | | | | | | | pushValue (\x_0 -> \x_1 -> \x_2 -> x_1)
+| | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | call name
+| | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | join join
+| | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | call name
+| | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | commit ExceptionFailure
+| | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | refJoin join
+| | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | catch ExceptionFailure
+| | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | <catchScope>
+| | | | | | | | | | | | | | | pushValue (\x_0 -> \x_1 -> \x_2 -> GHC.Tuple.())
+| | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | | call name
+| | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | | pushValue (\x_0 -> x_0)
+| | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | | newRegister reg
+| | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | | iter loop
+| | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | <ok>
+| | | | | | | | | | | | | | | | | pushValue (\x_0 -> \x_1 -> \x_2 -> x_0 x_2)
+| | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | | | | call name
+| | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | | | | call name
+| | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | | | | call name
+| | | | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | readRegister reg
+| | | | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | writeRegister reg
+| | | | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | jump loop
+| | | | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | | | <ko>
+| | | | | | | | | | | | | | | | | comment "raiseAgainIfConsumed"
+| | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | saveInput
+| | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| | | | | | | | | | | | | | | | |                                                                j_1
+| | | | | | | | | | | | | | | | |                                                                _) -> i_0 GHC.Classes.== j_1)
+| | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | choicesBranch
+| | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | <branch (\x_0 -> x_0)>
+| | | | | | | | | | | | | | | | | | | readRegister reg
+| | | | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | call name
+| | | | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | | | | | | call name
+| | | | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | | | | | | commit ExceptionFailure
+| | | | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | | | | | | refJoin join
+| | | | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | | | | | <default>
+| | | | | | | | | | | | | | | | | | | fail []
+| | | | | | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | <onException ExceptionFailure>
+| | | | | | | | | | | | | | | comment "raiseAgainIfConsumed"
+| | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | | saveInput
+| | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| | | | | | | | | | | | | | |                                                                j_1
+| | | | | | | | | | | | | | |                                                                _) -> i_0 GHC.Classes.== j_1)
+| | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | | choicesBranch
+| | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | | | <branch (\x_0 -> x_0)>
+| | | | | | | | | | | | | | | | | call name
+| | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | | | | refJoin join
+| | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | | | <default>
+| | | | | | | | | | | | | | | | | fail []
+| | | | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | <onException ExceptionFailure>
+| | | | | | | | | | | | | comment "raiseAgainIfConsumed"
+| | | | | | | | | | | | |   minReads=5
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | saveInput
+| | | | | | | | | | | | |   minReads=5
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| | | | | | | | | | | | |                                                                j_1
+| | | | | | | | | | | | |                                                                _) -> i_0 GHC.Classes.== j_1)
+| | | | | | | | | | | | |   minReads=5
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | choicesBranch
+| | | | | | | | | | | | |   minReads=5
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | <branch (\x_0 -> x_0)>
+| | | | | | | | | | | | | | | call name
+| | | | | | | | | | | | | | |   minReads=5
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | | refJoin join
+| | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | <default>
+| | | | | | | | | | | | | | | fail []
+| | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | <onException ExceptionFailure>
+| | | | | | | | | | | comment "raiseAgainIfConsumed"
+| | | | | | | | | | |   minReads=0
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | saveInput
+| | | | | | | | | | |   minReads=0
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| | | | | | | | | | |                                                                j_1
+| | | | | | | | | | |                                                                _) -> i_0 GHC.Classes.== j_1)
+| | | | | | | | | | |   minReads=0
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | choicesBranch
+| | | | | | | | | | |   minReads=0
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | <branch (\x_0 -> x_0)>
+| | | | | | | | | | | | | call name
+| | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | refJoin join
+| | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | <default>
+| | | | | | | | | | | | | fail []
+| | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | <default>
+| | | | | | | | | fail []
+| | | | | | | | |   minReads=0
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | | |   freeRegs=[]
+| | | | <default>
+| | | | | fail []
+| | | | |   minReads=0
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[ExceptionFailure]
+| | | | |   freeRegs=[]
+let name
+  minReads=2
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+| pushValue (\x_0 -> \x_1 -> '(')
+|   minReads=2
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| comment "satisfy ((GHC.Classes.==) '(')"
+|   minReads=2
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| read ((GHC.Classes.==) '(')
+|   minReads=2
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+|   minReads=1
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| call name
+|   minReads=1
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| ret
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+let name
+  minReads=2
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+| pushValue (\x_0 -> \x_1 -> ')')
+|   minReads=2
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| comment "satisfy ((GHC.Classes.==) ')')"
+|   minReads=2
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| read ((GHC.Classes.==) ')')
+|   minReads=2
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+|   minReads=1
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| call name
+|   minReads=1
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| ret
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+let name
+  minReads=2
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+| pushValue (\x_0 -> \x_1 -> ',')
+|   minReads=2
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| comment "satisfy ((GHC.Classes.==) ',')"
+|   minReads=2
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| read ((GHC.Classes.==) ',')
+|   minReads=2
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+|   minReads=1
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| call name
+|   minReads=1
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| ret
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+let name
+  minReads=2
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+| pushValue (\x_0 -> \x_1 -> ';')
+|   minReads=2
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| comment "satisfy ((GHC.Classes.==) ';')"
+|   minReads=2
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| read ((GHC.Classes.==) ';')
+|   minReads=2
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+|   minReads=1
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| call name
+|   minReads=1
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| ret
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+let name
+  minReads=2
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+| pushValue (\x_0 -> \x_1 -> \x_2 -> x_2)
+|   minReads=2
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| call name
+|   minReads=2
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+|   minReads=0
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| pushValue (\x_0 -> x_0)
+|   minReads=0
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| newRegister reg
+|   minReads=0
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| iter loop
+|   minReads=0
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[reg]
+| | <ok>
+| | | pushValue (\x_0 -> \x_1 -> \x_2 -> \x_3 -> x_3)
+| | |   minReads=4
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | comment "satisfy ((GHC.Classes.==) '!')"
+| | |   minReads=4
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | read ((GHC.Classes.==) '!')
+| | |   minReads=4
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | |   minReads=3
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | call name
+| | |   minReads=3
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | |   minReads=2
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | call name
+| | |   minReads=2
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | |   minReads=0
+| | |   mayRaise=[]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | readRegister reg
+| | |   minReads=0
+| | |   mayRaise=[]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | |   minReads=0
+| | |   mayRaise=[]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | writeRegister reg
+| | |   minReads=0
+| | |   mayRaise=[]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | jump loop
+| | |   minReads=0
+| | |   mayRaise=[]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | <ko>
+| | | comment "raiseAgainIfConsumed"
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | saveInput
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| | |                                                                j_1
+| | |                                                                _) -> i_0 GHC.Classes.== j_1)
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | choicesBranch
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | | <branch (\x_0 -> x_0)>
+| | | | | readRegister reg
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | call name
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | call name
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | ret
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | <default>
+| | | | | fail []
+| | | | |   minReads=0
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[ExceptionFailure]
+| | | | |   freeRegs=[]
+let name
+  minReads=2
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+| pushValue (\x_0 -> \x_1 -> x_1)
+|   minReads=2
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| call name
+|   minReads=2
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+|   minReads=0
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| join join
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | ret
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| catch ExceptionFailure
+|   minReads=0
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| | <catchScope>
+| | | pushValue (\x_0 -> GHC.Tuple.())
+| | |   minReads=5
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | call name
+| | |   minReads=5
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | |   minReads=0
+| | |   mayRaise=[]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | commit ExceptionFailure
+| | |   minReads=0
+| | |   mayRaise=[]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | refJoin join
+| | |   minReads=0
+| | |   mayRaise=[]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | <onException ExceptionFailure>
+| | | comment "raiseAgainIfConsumed"
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | saveInput
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| | |                                                                j_1
+| | |                                                                _) -> i_0 GHC.Classes.== j_1)
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | choicesBranch
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | | <branch (\x_0 -> x_0)>
+| | | | | call name
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | refJoin join
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | <default>
+| | | | | fail []
+| | | | |   minReads=0
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[ExceptionFailure]
+| | | | |   freeRegs=[]
+let name
+  minReads=2
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+| pushValue (\x_0 -> \x_1 -> x_1)
+|   minReads=2
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| catch ExceptionFailure
+|   minReads=2
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| | <catchScope>
+| | | pushValue (\x_0 -> \x_1 -> \x_2 -> x_2)
+| | |   minReads=2
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | comment "satisfy Parsers.Nandlang.nandIdentStart"
+| | |   minReads=2
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | read Parsers.Nandlang.nandIdentStart
+| | |   minReads=2
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | |   minReads=1
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | pushValue (\x_0 -> x_0)
+| | |   minReads=1
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | newRegister reg
+| | |   minReads=1
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | iter loop
+| | |   minReads=1
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | | <ok>
+| | | | | pushValue (\x_0 -> \x_1 -> x_1)
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | comment "satisfy Parsers.Nandlang.nandIdentLetter"
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | read Parsers.Nandlang.nandIdentLetter
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | readRegister reg
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | writeRegister reg
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | jump loop
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | <ko>
+| | | | | comment "raiseAgainIfConsumed"
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | saveInput
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| | | | |                                                                j_1
+| | | | |                                                                _) -> i_0 GHC.Classes.== j_1)
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | choicesBranch
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | | <branch (\x_0 -> x_0)>
+| | | | | | | readRegister reg
+| | | | | | |   minReads=1
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[reg]
+| | | | | | | call name
+| | | | | | |   minReads=1
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[]
+| | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | |   minReads=1
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[]
+| | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | |   minReads=1
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[]
+| | | | | | | call name
+| | | | | | |   minReads=1
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[]
+| | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | |   minReads=1
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[]
+| | | | | | | commit ExceptionFailure
+| | | | | | |   minReads=1
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[]
+| | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | |   minReads=1
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[]
+| | | | | | | call name
+| | | | | | |   minReads=1
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[]
+| | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | |   minReads=0
+| | | | | | |   mayRaise=[]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[]
+| | | | | | | ret
+| | | | | | |   minReads=0
+| | | | | | |   mayRaise=[]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[]
+| | | | | | <default>
+| | | | | | | fail []
+| | | | | | |   minReads=0
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | |   freeRegs=[]
+| | <onException ExceptionFailure>
+| | | loadInput
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[ExceptionFailure]
+| | |   freeRegs=[]
+| | | fail []
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[ExceptionFailure]
+| | |   freeRegs=[]
+let name
+  minReads=4
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+| pushValue (\x_0 -> \x_1 -> \x_2 -> \x_3 -> \x_4 -> \x_5 -> x_3)
+|   minReads=4
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| comment "satisfy ((GHC.Classes.==) '{')"
+|   minReads=4
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| read ((GHC.Classes.==) '{')
+|   minReads=4
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+|   minReads=3
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| call name
+|   minReads=3
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+|   minReads=2
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| pushValue (\x_0 -> x_0)
+|   minReads=2
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| newRegister reg
+|   minReads=2
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| iter loop
+|   minReads=2
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[reg]
+| | <ok>
+| | | pushValue (\x_0 -> \x_1 -> x_1)
+| | |   minReads=2
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | join join
+| | |   minReads=0
+| | |   mayRaise=[]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | readRegister reg
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | writeRegister reg
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | jump loop
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | catch ExceptionFailure
+| | |   minReads=2
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | | <catchScope>
+| | | | | pushValue (\x_0 -> \x_1 -> x_1)
+| | | | |   minReads=2
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | catch ExceptionFailure
+| | | | |   minReads=2
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | | <catchScope>
+| | | | | | | pushValue (\x_0 -> \x_1 -> (GHC.Types.:) 'i' ((GHC.Types.:) 'f' GHC.Types.[]))
+| | | | | | |   minReads=2
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[reg]
+| | | | | | | comment "satisfy ((GHC.Classes.==) 'i')"
+| | | | | | |   minReads=2
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[reg]
+| | | | | | | read ((GHC.Classes.==) 'i')
+| | | | | | |   minReads=2
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[reg]
+| | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | |   minReads=1
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[reg]
+| | | | | | | comment "satisfy ((GHC.Classes.==) 'f')"
+| | | | | | |   minReads=1
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[reg]
+| | | | | | | read ((GHC.Classes.==) 'f')
+| | | | | | |   minReads=1
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[reg]
+| | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | |   minReads=0
+| | | | | | |   mayRaise=[]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[reg]
+| | | | | | | commit ExceptionFailure
+| | | | | | |   minReads=0
+| | | | | | |   mayRaise=[]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[reg]
+| | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | |   minReads=0
+| | | | | | |   mayRaise=[]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[reg]
+| | | | | | | call name
+| | | | | | |   minReads=0
+| | | | | | |   mayRaise=[]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[reg]
+| | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | |   minReads=0
+| | | | | | |   mayRaise=[]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[reg]
+| | | | | | | commit ExceptionFailure
+| | | | | | |   minReads=0
+| | | | | | |   mayRaise=[]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[reg]
+| | | | | | | refJoin join
+| | | | | | |   minReads=0
+| | | | | | |   mayRaise=[]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[reg]
+| | | | | | <onException ExceptionFailure>
+| | | | | | | loadInput
+| | | | | | |   minReads=0
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | |   freeRegs=[]
+| | | | | | | fail []
+| | | | | | |   minReads=0
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | |   freeRegs=[]
+| | | | <onException ExceptionFailure>
+| | | | | comment "raiseAgainIfConsumed"
+| | | | |   minReads=4
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | saveInput
+| | | | |   minReads=4
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| | | | |                                                                j_1
+| | | | |                                                                _) -> i_0 GHC.Classes.== j_1)
+| | | | |   minReads=4
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | choicesBranch
+| | | | |   minReads=4
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | | <branch (\x_0 -> x_0)>
+| | | | | | | catch ExceptionFailure
+| | | | | | |   minReads=4
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[]
+| | | | | | |   freeRegs=[reg]
+| | | | | | | | <catchScope>
+| | | | | | | | | pushValue (\x_0 -> \x_1 -> \x_2 -> \x_3 -> x_3)
+| | | | | | | | |   minReads=7
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | |   alwaysRaise=[]
+| | | | | | | | |   freeRegs=[]
+| | | | | | | | | catch ExceptionFailure
+| | | | | | | | |   minReads=7
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | |   alwaysRaise=[]
+| | | | | | | | |   freeRegs=[]
+| | | | | | | | | | <catchScope>
+| | | | | | | | | | | pushValue (\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.[])))))
+| | | | | | | | | | |   minReads=7
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | comment "satisfy ((GHC.Classes.==) 'w')"
+| | | | | | | | | | |   minReads=7
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | read ((GHC.Classes.==) 'w')
+| | | | | | | | | | |   minReads=7
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | |   minReads=6
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | comment "satisfy ((GHC.Classes.==) 'h')"
+| | | | | | | | | | |   minReads=6
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | read ((GHC.Classes.==) 'h')
+| | | | | | | | | | |   minReads=6
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | |   minReads=5
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | comment "satisfy ((GHC.Classes.==) 'i')"
+| | | | | | | | | | |   minReads=5
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | read ((GHC.Classes.==) 'i')
+| | | | | | | | | | |   minReads=5
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | |   minReads=4
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | comment "satisfy ((GHC.Classes.==) 'l')"
+| | | | | | | | | | |   minReads=4
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | read ((GHC.Classes.==) 'l')
+| | | | | | | | | | |   minReads=4
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | |   minReads=3
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | comment "satisfy ((GHC.Classes.==) 'e')"
+| | | | | | | | | | |   minReads=3
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | read ((GHC.Classes.==) 'e')
+| | | | | | | | | | |   minReads=3
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | |   minReads=2
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | commit ExceptionFailure
+| | | | | | | | | | |   minReads=2
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | |   minReads=2
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | call name
+| | | | | | | | | | |   minReads=2
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | |   minReads=2
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | call name
+| | | | | | | | | | |   minReads=2
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | |   minReads=0
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | call name
+| | | | | | | | | | |   minReads=0
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | |   minReads=0
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | commit ExceptionFailure
+| | | | | | | | | | |   minReads=0
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | refJoin join
+| | | | | | | | | | |   minReads=0
+| | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | <onException ExceptionFailure>
+| | | | | | | | | | | loadInput
+| | | | | | | | | | |   minReads=0
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | fail []
+| | | | | | | | | | |   minReads=0
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | | | <onException ExceptionFailure>
+| | | | | | | | | comment "raiseAgainIfConsumed"
+| | | | | | | | |   minReads=4
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | |   alwaysRaise=[]
+| | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | saveInput
+| | | | | | | | |   minReads=4
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | |   alwaysRaise=[]
+| | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| | | | | | | | |                                                                j_1
+| | | | | | | | |                                                                _) -> i_0 GHC.Classes.== j_1)
+| | | | | | | | |   minReads=4
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | |   alwaysRaise=[]
+| | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | choicesBranch
+| | | | | | | | |   minReads=4
+| | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | |   alwaysRaise=[]
+| | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | <branch (\x_0 -> x_0)>
+| | | | | | | | | | | catch ExceptionFailure
+| | | | | | | | | | |   minReads=4
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | <catchScope>
+| | | | | | | | | | | | | catch ExceptionFailure
+| | | | | | | | | | | | |   minReads=8
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | <catchScope>
+| | | | | | | | | | | | | | | pushValue (\x_0 -> \x_1 -> \x_2 -> \x_3 -> \x_4 -> \x_5 -> \x_6 -> \x_7 -> \x_8 -> \x_9 -> x_8)
+| | | | | | | | | | | | | | |   minReads=8
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | join join
+| | | | | | | | | | | | | | |   minReads=8
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | | |   minReads=8
+| | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | call name
+| | | | | | | | | | | | | | | |   minReads=8
+| | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | | |   minReads=6
+| | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | pushValue (\x_0 -> x_0)
+| | | | | | | | | | | | | | | |   minReads=6
+| | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | newRegister reg
+| | | | | | | | | | | | | | | |   minReads=6
+| | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | iter loop
+| | | | | | | | | | | | | | | |   minReads=6
+| | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | |   freeRegs=[reg,reg]
+| | | | | | | | | | | | | | | | | <ok>
+| | | | | | | | | | | | | | | | | | pushValue (\x_0 -> \x_1 -> \x_2 -> x_0 x_2)
+| | | | | | | | | | | | | | | | | |   minReads=4
+| | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | call name
+| | | | | | | | | | | | | | | | | |   minReads=4
+| | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | | | | |   minReads=4
+| | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | call name
+| | | | | | | | | | | | | | | | | |   minReads=4
+| | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | call name
+| | | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | readRegister reg
+| | | | | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | writeRegister reg
+| | | | | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | jump loop
+| | | | | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | | | | <ko>
+| | | | | | | | | | | | | | | | | | comment "raiseAgainIfConsumed"
+| | | | | | | | | | | | | | | | | |   minReads=6
+| | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | |   freeRegs=[reg,reg]
+| | | | | | | | | | | | | | | | | | saveInput
+| | | | | | | | | | | | | | | | | |   minReads=6
+| | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | |   freeRegs=[reg,reg]
+| | | | | | | | | | | | | | | | | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| | | | | | | | | | | | | | | | | |                                                                j_1
+| | | | | | | | | | | | | | | | | |                                                                _) -> i_0 GHC.Classes.== j_1)
+| | | | | | | | | | | | | | | | | |   minReads=6
+| | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | |   freeRegs=[reg,reg]
+| | | | | | | | | | | | | | | | | | choicesBranch
+| | | | | | | | | | | | | | | | | |   minReads=6
+| | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | |   freeRegs=[reg,reg]
+| | | | | | | | | | | | | | | | | | | <branch (\x_0 -> x_0)>
+| | | | | | | | | | | | | | | | | | | | readRegister reg
+| | | | | | | | | | | | | | | | | | | |   minReads=6
+| | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | |   freeRegs=[reg,reg]
+| | | | | | | | | | | | | | | | | | | | call name
+| | | | | | | | | | | | | | | | | | | |   minReads=6
+| | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | | | | | | |   minReads=6
+| | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | | | | | | |   minReads=6
+| | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | | call name
+| | | | | | | | | | | | | | | | | | | |   minReads=6
+| | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | | | | | | |   minReads=6
+| | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | | comment "satisfy ((GHC.Classes.==) '=')"
+| | | | | | | | | | | | | | | | | | | |   minReads=6
+| | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | | read ((GHC.Classes.==) '=')
+| | | | | | | | | | | | | | | | | | | |   minReads=6
+| | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | | | | | | |   minReads=5
+| | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | | call name
+| | | | | | | | | | | | | | | | | | | |   minReads=5
+| | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | | | | | | |   minReads=4
+| | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | | call name
+| | | | | | | | | | | | | | | | | | | |   minReads=4
+| | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | | pushValue (\x_0 -> x_0)
+| | | | | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | | newRegister reg
+| | | | | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | | iter loop
+| | | | | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | |   freeRegs=[reg,reg]
+| | | | | | | | | | | | | | | | | | | | | <ok>
+| | | | | | | | | | | | | | | | | | | | | | pushValue (\x_0 -> \x_1 -> \x_2 -> x_0 x_2)
+| | | | | | | | | | | | | | | | | | | | | |   minReads=4
+| | | | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | | | | call name
+| | | | | | | | | | | | | | | | | | | | | |   minReads=4
+| | | | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | | | | | | | | |   minReads=4
+| | | | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | | | | call name
+| | | | | | | | | | | | | | | | | | | | | |   minReads=4
+| | | | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | | | | call name
+| | | | | | | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | | | | readRegister reg
+| | | | | | | | | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | | | | writeRegister reg
+| | | | | | | | | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | | | | jump loop
+| | | | | | | | | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | | | | | | | | <ko>
+| | | | | | | | | | | | | | | | | | | | | | comment "raiseAgainIfConsumed"
+| | | | | | | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | | | |   freeRegs=[reg,reg]
+| | | | | | | | | | | | | | | | | | | | | | saveInput
+| | | | | | | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | | | |   freeRegs=[reg,reg]
+| | | | | | | | | | | | | | | | | | | | | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| | | | | | | | | | | | | | | | | | | | | |                                                                j_1
+| | | | | | | | | | | | | | | | | | | | | |                                                                _) -> i_0 GHC.Classes.== j_1)
+| | | | | | | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | | | |   freeRegs=[reg,reg]
+| | | | | | | | | | | | | | | | | | | | | | choicesBranch
+| | | | | | | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | | | |   freeRegs=[reg,reg]
+| | | | | | | | | | | | | | | | | | | | | | | <branch (\x_0 -> x_0)>
+| | | | | | | | | | | | | | | | | | | | | | | | readRegister reg
+| | | | | | | | | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | | | | | |   freeRegs=[reg,reg]
+| | | | | | | | | | | | | | | | | | | | | | | | call name
+| | | | | | | | | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | | | | | | call name
+| | | | | | | | | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | | | | | | call name
+| | | | | | | | | | | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | | | | | | commit ExceptionFailure
+| | | | | | | | | | | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | | | | | | commit ExceptionFailure
+| | | | | | | | | | | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | | | | | | refJoin join
+| | | | | | | | | | | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | | | | | <default>
+| | | | | | | | | | | | | | | | | | | | | | | | fail []
+| | | | | | | | | | | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | | | | | | <default>
+| | | | | | | | | | | | | | | | | | | | fail []
+| | | | | | | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | | catch ExceptionFailure
+| | | | | | | | | | | | | | |   minReads=8
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | <catchScope>
+| | | | | | | | | | | | | | | | | pushValue (\x_0 -> \x_1 -> GHC.Tuple.())
+| | | | | | | | | | | | | | | | |   minReads=11
+| | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | catch ExceptionFailure
+| | | | | | | | | | | | | | | | |   minReads=11
+| | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | <catchScope>
+| | | | | | | | | | | | | | | | | | | pushValue (\x_0 -> \x_1 -> \x_2 -> (GHC.Types.:) 'v' ((GHC.Types.:) 'a' ((GHC.Types.:) 'r' GHC.Types.[])))
+| | | | | | | | | | | | | | | | | | |   minReads=11
+| | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | comment "satisfy ((GHC.Classes.==) 'v')"
+| | | | | | | | | | | | | | | | | | |   minReads=11
+| | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | read ((GHC.Classes.==) 'v')
+| | | | | | | | | | | | | | | | | | |   minReads=11
+| | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | | | | | |   minReads=10
+| | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | comment "satisfy ((GHC.Classes.==) 'a')"
+| | | | | | | | | | | | | | | | | | |   minReads=10
+| | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | read ((GHC.Classes.==) 'a')
+| | | | | | | | | | | | | | | | | | |   minReads=10
+| | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | | | | | |   minReads=9
+| | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | comment "satisfy ((GHC.Classes.==) 'r')"
+| | | | | | | | | | | | | | | | | | |   minReads=9
+| | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | read ((GHC.Classes.==) 'r')
+| | | | | | | | | | | | | | | | | | |   minReads=9
+| | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | | | | | |   minReads=8
+| | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | commit ExceptionFailure
+| | | | | | | | | | | | | | | | | | |   minReads=8
+| | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | | | | | |   minReads=8
+| | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | call name
+| | | | | | | | | | | | | | | | | | |   minReads=8
+| | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | | | | | |   minReads=8
+| | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | commit ExceptionFailure
+| | | | | | | | | | | | | | | | | | |   minReads=8
+| | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | refJoin join
+| | | | | | | | | | | | | | | | | | |   minReads=8
+| | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | <onException ExceptionFailure>
+| | | | | | | | | | | | | | | | | | | loadInput
+| | | | | | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | | | | | | fail []
+| | | | | | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | | | <onException ExceptionFailure>
+| | | | | | | | | | | | | | | | | comment "raiseAgainIfConsumed"
+| | | | | | | | | | | | | | | | |   minReads=8
+| | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | saveInput
+| | | | | | | | | | | | | | | | |   minReads=8
+| | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| | | | | | | | | | | | | | | | |                                                                j_1
+| | | | | | | | | | | | | | | | |                                                                _) -> i_0 GHC.Classes.== j_1)
+| | | | | | | | | | | | | | | | |   minReads=8
+| | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | choicesBranch
+| | | | | | | | | | | | | | | | |   minReads=8
+| | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | <branch (\x_0 -> x_0)>
+| | | | | | | | | | | | | | | | | | | call name
+| | | | | | | | | | | | | | | | | | |   minReads=8
+| | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | | refJoin join
+| | | | | | | | | | | | | | | | | | |   minReads=8
+| | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | | | | <default>
+| | | | | | | | | | | | | | | | | | | fail []
+| | | | | | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | <onException ExceptionFailure>
+| | | | | | | | | | | | | | | loadInput
+| | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | | | | fail []
+| | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | | | <onException ExceptionFailure>
+| | | | | | | | | | | | | comment "raiseAgainIfConsumed"
+| | | | | | | | | | | | |   minReads=4
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | saveInput
+| | | | | | | | | | | | |   minReads=4
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| | | | | | | | | | | | |                                                                j_1
+| | | | | | | | | | | | |                                                                _) -> i_0 GHC.Classes.== j_1)
+| | | | | | | | | | | | |   minReads=4
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | choicesBranch
+| | | | | | | | | | | | |   minReads=4
+| | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | <branch (\x_0 -> x_0)>
+| | | | | | | | | | | | | | | pushValue (\x_0 -> \x_1 -> x_0)
+| | | | | | | | | | | | | | |   minReads=4
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | call name
+| | | | | | | | | | | | | | |   minReads=4
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | call name
+| | | | | | | | | | | | | | |   minReads=2
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | | refJoin join
+| | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | |   mayRaise=[]
+| | | | | | | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | | | | | | |   freeRegs=[reg]
+| | | | | | | | | | | | | | <default>
+| | | | | | | | | | | | | | | fail []
+| | | | | | | | | | | | | | |   minReads=0
+| | | | | | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | <default>
+| | | | | | | | | | | fail []
+| | | | | | | | | | |   minReads=0
+| | | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | | | | |   freeRegs=[]
+| | | | | | <default>
+| | | | | | | fail []
+| | | | | | |   minReads=0
+| | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | |   freeRegs=[]
+| | <ko>
+| | | comment "raiseAgainIfConsumed"
+| | |   minReads=2
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | saveInput
+| | |   minReads=2
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| | |                                                                j_1
+| | |                                                                _) -> i_0 GHC.Classes.== j_1)
+| | |   minReads=2
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | choicesBranch
+| | |   minReads=2
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | | <branch (\x_0 -> x_0)>
+| | | | | readRegister reg
+| | | | |   minReads=2
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | call name
+| | | | |   minReads=2
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=2
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=2
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | call name
+| | | | |   minReads=2
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=2
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | comment "satisfy ((GHC.Classes.==) '}')"
+| | | | |   minReads=2
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | read ((GHC.Classes.==) '}')
+| | | | |   minReads=2
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | call name
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | ret
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | <default>
+| | | | | fail []
+| | | | |   minReads=0
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[ExceptionFailure]
+| | | | |   freeRegs=[]
+let name
+  minReads=5
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+| pushValue (\x_0 -> \x_1 -> \x_2 -> \x_3 -> \x_4 -> \x_5 -> GHC.Tuple.())
+|   minReads=5
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| comment "satisfy ((GHC.Classes.==) '[')"
+|   minReads=5
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| read ((GHC.Classes.==) '[')
+|   minReads=5
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+|   minReads=4
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| call name
+|   minReads=4
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+|   minReads=3
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| call name
+|   minReads=3
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+|   minReads=2
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| pushValue (\x_0 -> x_0)
+|   minReads=2
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| newRegister reg
+|   minReads=2
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| iter loop
+|   minReads=2
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[reg]
+| | <ok>
+| | | pushValue (\x_0 -> \x_1 -> x_1)
+| | |   minReads=1
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | call name
+| | |   minReads=1
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | |   minReads=0
+| | |   mayRaise=[]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | readRegister reg
+| | |   minReads=0
+| | |   mayRaise=[]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | |   minReads=0
+| | |   mayRaise=[]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | writeRegister reg
+| | |   minReads=0
+| | |   mayRaise=[]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | jump loop
+| | |   minReads=0
+| | |   mayRaise=[]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | <ko>
+| | | comment "raiseAgainIfConsumed"
+| | |   minReads=2
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | saveInput
+| | |   minReads=2
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| | |                                                                j_1
+| | |                                                                _) -> i_0 GHC.Classes.== j_1)
+| | |   minReads=2
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | choicesBranch
+| | |   minReads=2
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[reg]
+| | | | <branch (\x_0 -> x_0)>
+| | | | | readRegister reg
+| | | | |   minReads=2
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | pushValue GHC.Tuple.()
+| | | | |   minReads=2
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=2
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=2
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | comment "satisfy ((GHC.Classes.==) ']')"
+| | | | |   minReads=2
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | read ((GHC.Classes.==) ']')
+| | | | |   minReads=2
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | call name
+| | | | |   minReads=1
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | ret
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | <default>
+| | | | | fail []
+| | | | |   minReads=0
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[ExceptionFailure]
+| | | | |   freeRegs=[]
+pushValue (\x_0 -> \x_1 -> \x_2 -> \x_3 -> GHC.Show.show x_2)
+  minReads=1
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+call name
+  minReads=1
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+  minReads=0
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+pushValue (\x_0 -> x_0)
+  minReads=0
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+newRegister reg
+  minReads=0
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+iter loop
+  minReads=0
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[reg]
+| <ok>
+| | pushValue (\x_0 -> \x_1 -> \x_2 -> \x_3 -> \x_4 -> \x_5 -> \x_6 -> \x_7 -> \x_8 -> x_8)
+| |   minReads=18
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | catch ExceptionFailure
+| |   minReads=18
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | | <catchScope>
+| | | | pushValue (\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.[]))))))))
+| | | |   minReads=18
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | comment "satisfy ((GHC.Classes.==) 'f')"
+| | | |   minReads=18
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | read ((GHC.Classes.==) 'f')
+| | | |   minReads=18
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=17
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | comment "satisfy ((GHC.Classes.==) 'u')"
+| | | |   minReads=17
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | read ((GHC.Classes.==) 'u')
+| | | |   minReads=17
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=16
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | comment "satisfy ((GHC.Classes.==) 'n')"
+| | | |   minReads=16
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | read ((GHC.Classes.==) 'n')
+| | | |   minReads=16
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=15
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | comment "satisfy ((GHC.Classes.==) 'c')"
+| | | |   minReads=15
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | read ((GHC.Classes.==) 'c')
+| | | |   minReads=15
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=14
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | comment "satisfy ((GHC.Classes.==) 't')"
+| | | |   minReads=14
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | read ((GHC.Classes.==) 't')
+| | | |   minReads=14
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=13
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | comment "satisfy ((GHC.Classes.==) 'i')"
+| | | |   minReads=13
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | read ((GHC.Classes.==) 'i')
+| | | |   minReads=13
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=12
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | comment "satisfy ((GHC.Classes.==) 'o')"
+| | | |   minReads=12
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | read ((GHC.Classes.==) 'o')
+| | | |   minReads=12
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=11
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | comment "satisfy ((GHC.Classes.==) 'n')"
+| | | |   minReads=11
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | read ((GHC.Classes.==) 'n')
+| | | |   minReads=11
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=10
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | commit ExceptionFailure
+| | | |   minReads=10
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=10
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | call name
+| | | |   minReads=10
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=10
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | call name
+| | | |   minReads=10
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=8
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | call name
+| | | |   minReads=8
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=6
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | call name
+| | | |   minReads=6
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=6
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | join join
+| | | |   minReads=6
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=6
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | call name
+| | | | |   minReads=6
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=4
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | call name
+| | | | |   minReads=4
+| | | | |   mayRaise=[ExceptionFailure]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | readRegister reg
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | writeRegister reg
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[reg]
+| | | | | jump loop
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | catch ExceptionFailure
+| | | |   minReads=6
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | | <catchScope>
+| | | | | | pushValue (\x_0 -> \x_1 -> \x_2 -> GHC.Tuple.())
+| | | | | |   minReads=8
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[reg]
+| | | | | | comment "satisfy ((GHC.Classes.==) ':')"
+| | | | | |   minReads=8
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[reg]
+| | | | | | read ((GHC.Classes.==) ':')
+| | | | | |   minReads=8
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[reg]
+| | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | |   minReads=7
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[reg]
+| | | | | | call name
+| | | | | |   minReads=7
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[reg]
+| | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | |   minReads=6
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[reg]
+| | | | | | call name
+| | | | | |   minReads=6
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[reg]
+| | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | |   minReads=6
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[reg]
+| | | | | | commit ExceptionFailure
+| | | | | |   minReads=6
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[reg]
+| | | | | | refJoin join
+| | | | | |   minReads=6
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[reg]
+| | | | | <onException ExceptionFailure>
+| | | | | | comment "raiseAgainIfConsumed"
+| | | | | |   minReads=6
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[reg]
+| | | | | | saveInput
+| | | | | |   minReads=6
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[reg]
+| | | | | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| | | | | |                                                                j_1
+| | | | | |                                                                _) -> i_0 GHC.Classes.== j_1)
+| | | | | |   minReads=6
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[reg]
+| | | | | | choicesBranch
+| | | | | |   minReads=6
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[reg]
+| | | | | | | <branch (\x_0 -> x_0)>
+| | | | | | | | call name
+| | | | | | | |   minReads=6
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[reg]
+| | | | | | | | refJoin join
+| | | | | | | |   minReads=6
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[reg]
+| | | | | | | <default>
+| | | | | | | | fail []
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | <onException ExceptionFailure>
+| | | | loadInput
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
+| | | | fail []
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
+| <ko>
+| | comment "raiseAgainIfConsumed"
+| |   minReads=0
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | saveInput
+| |   minReads=0
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| |                                                                j_1
+| |                                                                _) -> i_0 GHC.Classes.== j_1)
+| |   minReads=0
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | choicesBranch
+| |   minReads=0
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | | <branch (\x_0 -> x_0)>
+| | | | readRegister reg
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | call name
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | call name
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | join join
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | ret
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | catch ExceptionFailure
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | | <catchScope>
+| | | | | | comment "negLook"
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | catch ExceptionFailure
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | | <catchScope>
+| | | | | | | | comment "negLook.ahead"
+| | | | | | | |   minReads=1
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | saveInput
+| | | | | | | |   minReads=1
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | comment "satisfy ((\\x_0 -> \\x_1 -> x_0) GHC.Types.True)"
+| | | | | | | |   minReads=1
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | read (\x_0 -> GHC.Types.True)
+| | | | | | | |   minReads=1
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | popValue
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | commit ExceptionFailure
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | loadInput
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | fail []
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | <onException ExceptionFailure>
+| | | | | | | | comment "negLook.reset"
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | loadInput
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | pushValue GHC.Tuple.()
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | commit ExceptionFailure
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | refJoin join
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | <onException ExceptionFailure>
+| | | | | | comment "raiseAgainIfConsumed"
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | saveInput
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| | | | | |                                                                j_1
+| | | | | |                                                                _) -> i_0 GHC.Classes.== j_1)
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | choicesBranch
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | | <branch (\x_0 -> x_0)>
+| | | | | | | | comment "eof.fail"
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | fail [FailureEnd]
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | <default>
+| | | | | | | | fail []
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | <default>
+| | | | fail []
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
diff --git a/tests/Golden/Machine/G15.expected.txt b/tests/Golden/Machine/G15.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Machine/G15.expected.txt
@@ -0,0 +1,126 @@
+pushValue (\x_0 -> \x_1 -> GHC.Show.show x_0)
+  minReads=2
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+join join
+  minReads=1
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+|   minReads=1
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| comment "satisfy ((GHC.Classes.==) 'c')"
+|   minReads=1
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| read ((GHC.Classes.==) 'c')
+|   minReads=1
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| ret
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+catch ExceptionFailure
+  minReads=2
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+| <catchScope>
+| | pushValue (\x_0 -> 'a')
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | comment "satisfy ((GHC.Classes.==) 'a')"
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | read ((GHC.Classes.==) 'a')
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | commit ExceptionFailure
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | refJoin join
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| <onException ExceptionFailure>
+| | comment "raiseAgainIfConsumed"
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | saveInput
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| |                                                                j_1
+| |                                                                _) -> i_0 GHC.Classes.== j_1)
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | choicesBranch
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | | <branch (\x_0 -> x_0)>
+| | | | pushValue (\x_0 -> 'b')
+| | | |   minReads=2
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | comment "satisfy ((GHC.Classes.==) 'b')"
+| | | |   minReads=2
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | read ((GHC.Classes.==) 'b')
+| | | |   minReads=2
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=1
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | refJoin join
+| | | |   minReads=1
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | <default>
+| | | | fail []
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
diff --git a/tests/Golden/Machine/G16.expected.txt b/tests/Golden/Machine/G16.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Machine/G16.expected.txt
@@ -0,0 +1,192 @@
+pushValue (\x_0 -> \x_1 -> GHC.Show.show x_0)
+  minReads=2
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+join join
+  minReads=1
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+|   minReads=1
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| comment "satisfy ((GHC.Classes.==) 'd')"
+|   minReads=1
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| read ((GHC.Classes.==) 'd')
+|   minReads=1
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| ret
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+catch ExceptionFailure
+  minReads=2
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+| <catchScope>
+| | pushValue (\x_0 -> 'a')
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | comment "satisfy ((GHC.Classes.==) 'a')"
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | read ((GHC.Classes.==) 'a')
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | commit ExceptionFailure
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | refJoin join
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| <onException ExceptionFailure>
+| | comment "raiseAgainIfConsumed"
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | saveInput
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| |                                                                j_1
+| |                                                                _) -> i_0 GHC.Classes.== j_1)
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | choicesBranch
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | | <branch (\x_0 -> x_0)>
+| | | | catch ExceptionFailure
+| | | |   minReads=2
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | | <catchScope>
+| | | | | | pushValue (\x_0 -> 'b')
+| | | | | |   minReads=2
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | comment "satisfy ((GHC.Classes.==) 'b')"
+| | | | | |   minReads=2
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | read ((GHC.Classes.==) 'b')
+| | | | | |   minReads=2
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | |   minReads=1
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | commit ExceptionFailure
+| | | | | |   minReads=1
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | refJoin join
+| | | | | |   minReads=1
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | <onException ExceptionFailure>
+| | | | | | comment "raiseAgainIfConsumed"
+| | | | | |   minReads=2
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | saveInput
+| | | | | |   minReads=2
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| | | | | |                                                                j_1
+| | | | | |                                                                _) -> i_0 GHC.Classes.== j_1)
+| | | | | |   minReads=2
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | choicesBranch
+| | | | | |   minReads=2
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | | <branch (\x_0 -> x_0)>
+| | | | | | | | pushValue (\x_0 -> 'c')
+| | | | | | | |   minReads=2
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | comment "satisfy ((GHC.Classes.==) 'c')"
+| | | | | | | |   minReads=2
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | read ((GHC.Classes.==) 'c')
+| | | | | | | |   minReads=2
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | |   minReads=1
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | refJoin join
+| | | | | | | |   minReads=1
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | <default>
+| | | | | | | | fail []
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | <default>
+| | | | fail []
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
diff --git a/tests/Golden/Machine/G17.expected.txt b/tests/Golden/Machine/G17.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Machine/G17.expected.txt
@@ -0,0 +1,55 @@
+pushValue GHC.Show.show
+  minReads=1
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+comment "satisfy ((\\x_0 -> \\x_1 -> x_0) GHC.Types.True)"
+  minReads=1
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+read (\x_0 -> GHC.Types.True)
+  minReads=1
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+newRegister reg
+  minReads=0
+  mayRaise=[]
+  alwaysRaise=[]
+  freeRegs=[]
+pushValue GHC.Tuple.(,)
+  minReads=0
+  mayRaise=[]
+  alwaysRaise=[]
+  freeRegs=[reg]
+readRegister reg
+  minReads=0
+  mayRaise=[]
+  alwaysRaise=[]
+  freeRegs=[reg]
+lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+  minReads=0
+  mayRaise=[]
+  alwaysRaise=[]
+  freeRegs=[reg]
+readRegister reg
+  minReads=0
+  mayRaise=[]
+  alwaysRaise=[]
+  freeRegs=[reg]
+lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+  minReads=0
+  mayRaise=[]
+  alwaysRaise=[]
+  freeRegs=[]
+lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+  minReads=0
+  mayRaise=[]
+  alwaysRaise=[]
+  freeRegs=[]
+ret
+  minReads=0
+  mayRaise=[]
+  alwaysRaise=[]
+  freeRegs=[]
diff --git a/tests/Golden/Machine/G18.expected.txt b/tests/Golden/Machine/G18.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Machine/G18.expected.txt
@@ -0,0 +1,200 @@
+pushValue GHC.Show.show
+  minReads=2
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+join join
+  minReads=0
+  mayRaise=[]
+  alwaysRaise=[]
+  freeRegs=[]
+| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| ret
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+catch ExceptionFailure
+  minReads=2
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+| <catchScope>
+| | catch ExceptionFailure
+| |   minReads=3
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | | <catchScope>
+| | | | pushValue (\x_0 -> \x_1 -> \x_2 -> (GHC.Types.:) 'a' ((GHC.Types.:) 'b' ((GHC.Types.:) 'c' GHC.Types.[])))
+| | | |   minReads=3
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | comment "satisfy ((GHC.Classes.==) 'a')"
+| | | |   minReads=3
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | read ((GHC.Classes.==) 'a')
+| | | |   minReads=3
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=2
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | comment "satisfy ((GHC.Classes.==) 'b')"
+| | | |   minReads=2
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | read ((GHC.Classes.==) 'b')
+| | | |   minReads=2
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=1
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | comment "satisfy ((GHC.Classes.==) 'c')"
+| | | |   minReads=1
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | read ((GHC.Classes.==) 'c')
+| | | |   minReads=1
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | commit ExceptionFailure
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | commit ExceptionFailure
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | refJoin join
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | <onException ExceptionFailure>
+| | | | loadInput
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
+| | | | fail []
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
+| <onException ExceptionFailure>
+| | comment "raiseAgainIfConsumed"
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | saveInput
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| |                                                                j_1
+| |                                                                _) -> i_0 GHC.Classes.== j_1)
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | choicesBranch
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | | <branch (\x_0 -> x_0)>
+| | | | catch ExceptionFailure
+| | | |   minReads=2
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | | <catchScope>
+| | | | | | pushValue (\x_0 -> \x_1 -> (GHC.Types.:) 'd' ((GHC.Types.:) 'e' GHC.Types.[]))
+| | | | | |   minReads=2
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | comment "satisfy ((GHC.Classes.==) 'd')"
+| | | | | |   minReads=2
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | read ((GHC.Classes.==) 'd')
+| | | | | |   minReads=2
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | |   minReads=1
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | comment "satisfy ((GHC.Classes.==) 'e')"
+| | | | | |   minReads=1
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | read ((GHC.Classes.==) 'e')
+| | | | | |   minReads=1
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | commit ExceptionFailure
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | refJoin join
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | <onException ExceptionFailure>
+| | | | | | loadInput
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | |   freeRegs=[]
+| | | | | | fail []
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | |   freeRegs=[]
+| | | <default>
+| | | | fail []
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
diff --git a/tests/Golden/Machine/G19.expected.txt b/tests/Golden/Machine/G19.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Machine/G19.expected.txt
@@ -0,0 +1,333 @@
+pushValue GHC.Show.show
+  minReads=2
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+join join
+  minReads=0
+  mayRaise=[]
+  alwaysRaise=[]
+  freeRegs=[]
+| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| ret
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+catch ExceptionFailure
+  minReads=2
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+| <catchScope>
+| | catch ExceptionFailure
+| |   minReads=3
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | | <catchScope>
+| | | | pushValue (\x_0 -> \x_1 -> \x_2 -> (GHC.Types.:) 'a' ((GHC.Types.:) 'b' ((GHC.Types.:) 'c' GHC.Types.[])))
+| | | |   minReads=3
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | comment "satisfy ((GHC.Classes.==) 'a')"
+| | | |   minReads=3
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | read ((GHC.Classes.==) 'a')
+| | | |   minReads=3
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=2
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | comment "satisfy ((GHC.Classes.==) 'b')"
+| | | |   minReads=2
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | read ((GHC.Classes.==) 'b')
+| | | |   minReads=2
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=1
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | comment "satisfy ((GHC.Classes.==) 'c')"
+| | | |   minReads=1
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | read ((GHC.Classes.==) 'c')
+| | | |   minReads=1
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | commit ExceptionFailure
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | commit ExceptionFailure
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | refJoin join
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | <onException ExceptionFailure>
+| | | | loadInput
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
+| | | | fail []
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
+| <onException ExceptionFailure>
+| | comment "raiseAgainIfConsumed"
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | saveInput
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| |                                                                j_1
+| |                                                                _) -> i_0 GHC.Classes.== j_1)
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | choicesBranch
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | | <branch (\x_0 -> x_0)>
+| | | | catch ExceptionFailure
+| | | |   minReads=2
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | | <catchScope>
+| | | | | | catch ExceptionFailure
+| | | | | |   minReads=2
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | | <catchScope>
+| | | | | | | | pushValue (\x_0 -> \x_1 -> (GHC.Types.:) 'd' ((GHC.Types.:) 'e' GHC.Types.[]))
+| | | | | | | |   minReads=2
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | comment "satisfy ((GHC.Classes.==) 'd')"
+| | | | | | | |   minReads=2
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | read ((GHC.Classes.==) 'd')
+| | | | | | | |   minReads=2
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | |   minReads=1
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | comment "satisfy ((GHC.Classes.==) 'e')"
+| | | | | | | |   minReads=1
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | read ((GHC.Classes.==) 'e')
+| | | | | | | |   minReads=1
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | commit ExceptionFailure
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | commit ExceptionFailure
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | refJoin join
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | <onException ExceptionFailure>
+| | | | | | | | loadInput
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | fail []
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | <onException ExceptionFailure>
+| | | | | | comment "raiseAgainIfConsumed"
+| | | | | |   minReads=4
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | saveInput
+| | | | | |   minReads=4
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| | | | | |                                                                j_1
+| | | | | |                                                                _) -> i_0 GHC.Classes.== j_1)
+| | | | | |   minReads=4
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | choicesBranch
+| | | | | |   minReads=4
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | | <branch (\x_0 -> x_0)>
+| | | | | | | | catch ExceptionFailure
+| | | | | | | |   minReads=4
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | | <catchScope>
+| | | | | | | | | | pushValue (\x_0 -> \x_1 -> \x_2 -> \x_3 -> (GHC.Types.:) 'f' ((GHC.Types.:) 'g' ((GHC.Types.:) 'h' ((GHC.Types.:) 'i' GHC.Types.[]))))
+| | | | | | | | | |   minReads=4
+| | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | comment "satisfy ((GHC.Classes.==) 'f')"
+| | | | | | | | | |   minReads=4
+| | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | read ((GHC.Classes.==) 'f')
+| | | | | | | | | |   minReads=4
+| | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | |   minReads=3
+| | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | comment "satisfy ((GHC.Classes.==) 'g')"
+| | | | | | | | | |   minReads=3
+| | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | read ((GHC.Classes.==) 'g')
+| | | | | | | | | |   minReads=3
+| | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | |   minReads=2
+| | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | comment "satisfy ((GHC.Classes.==) 'h')"
+| | | | | | | | | |   minReads=2
+| | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | read ((GHC.Classes.==) 'h')
+| | | | | | | | | |   minReads=2
+| | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | |   minReads=1
+| | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | comment "satisfy ((GHC.Classes.==) 'i')"
+| | | | | | | | | |   minReads=1
+| | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | read ((GHC.Classes.==) 'i')
+| | | | | | | | | |   minReads=1
+| | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | | | | | |   minReads=0
+| | | | | | | | | |   mayRaise=[]
+| | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | commit ExceptionFailure
+| | | | | | | | | |   minReads=0
+| | | | | | | | | |   mayRaise=[]
+| | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | refJoin join
+| | | | | | | | | |   minReads=0
+| | | | | | | | | |   mayRaise=[]
+| | | | | | | | | |   alwaysRaise=[]
+| | | | | | | | | |   freeRegs=[]
+| | | | | | | | | <onException ExceptionFailure>
+| | | | | | | | | | loadInput
+| | | | | | | | | |   minReads=0
+| | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | | | |   freeRegs=[]
+| | | | | | | | | | fail []
+| | | | | | | | | |   minReads=0
+| | | | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | | | |   freeRegs=[]
+| | | | | | | <default>
+| | | | | | | | fail []
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | <default>
+| | | | fail []
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
diff --git a/tests/Golden/Machine/G2.expected.txt b/tests/Golden/Machine/G2.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Machine/G2.expected.txt
@@ -0,0 +1,87 @@
+pushValue GHC.Show.show
+  minReads=3
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+catch ExceptionFailure
+  minReads=3
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+| <catchScope>
+| | pushValue (\x_0 -> \x_1 -> \x_2 -> (GHC.Types.:) 'a' ((GHC.Types.:) 'b' ((GHC.Types.:) 'c' GHC.Types.[])))
+| |   minReads=3
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | comment "satisfy ((GHC.Classes.==) 'a')"
+| |   minReads=3
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | read ((GHC.Classes.==) 'a')
+| |   minReads=3
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | comment "satisfy ((GHC.Classes.==) 'b')"
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | read ((GHC.Classes.==) 'b')
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | comment "satisfy ((GHC.Classes.==) 'c')"
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | read ((GHC.Classes.==) 'c')
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | commit ExceptionFailure
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | ret
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| <onException ExceptionFailure>
+| | loadInput
+| |   minReads=0
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[ExceptionFailure]
+| |   freeRegs=[]
+| | fail []
+| |   minReads=0
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[ExceptionFailure]
+| |   freeRegs=[]
diff --git a/tests/Golden/Machine/G20.expected.txt b/tests/Golden/Machine/G20.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Machine/G20.expected.txt
@@ -0,0 +1,247 @@
+pushValue (\x_0 -> \x_1 -> GHC.Show.show GHC.Tuple.())
+  minReads=3
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+join join
+  minReads=3
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+|   minReads=3
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| catch ExceptionFailure
+|   minReads=3
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| | <catchScope>
+| | | pushValue (\x_0 -> \x_1 -> \x_2 -> (GHC.Types.:) 'd' ((GHC.Types.:) 'e' ((GHC.Types.:) 'f' GHC.Types.[])))
+| | |   minReads=3
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | comment "satisfy ((GHC.Classes.==) 'd')"
+| | |   minReads=3
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | read ((GHC.Classes.==) 'd')
+| | |   minReads=3
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | |   minReads=2
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | comment "satisfy ((GHC.Classes.==) 'e')"
+| | |   minReads=2
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | read ((GHC.Classes.==) 'e')
+| | |   minReads=2
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | |   minReads=1
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | comment "satisfy ((GHC.Classes.==) 'f')"
+| | |   minReads=1
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | read ((GHC.Classes.==) 'f')
+| | |   minReads=1
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | |   minReads=0
+| | |   mayRaise=[]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | commit ExceptionFailure
+| | |   minReads=0
+| | |   mayRaise=[]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | |   minReads=0
+| | |   mayRaise=[]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | ret
+| | |   minReads=0
+| | |   mayRaise=[]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | <onException ExceptionFailure>
+| | | loadInput
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[ExceptionFailure]
+| | |   freeRegs=[]
+| | | fail []
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[ExceptionFailure]
+| | |   freeRegs=[]
+catch ExceptionFailure
+  minReads=3
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+| <catchScope>
+| | catch ExceptionFailure
+| |   minReads=6
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | | <catchScope>
+| | | | pushValue (\x_0 -> \x_1 -> \x_2 -> (GHC.Types.:) 'a' ((GHC.Types.:) 'b' ((GHC.Types.:) 'c' GHC.Types.[])))
+| | | |   minReads=6
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | comment "satisfy ((GHC.Classes.==) 'a')"
+| | | |   minReads=6
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | read ((GHC.Classes.==) 'a')
+| | | |   minReads=6
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=5
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | comment "satisfy ((GHC.Classes.==) 'b')"
+| | | |   minReads=5
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | read ((GHC.Classes.==) 'b')
+| | | |   minReads=5
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=4
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | comment "satisfy ((GHC.Classes.==) 'c')"
+| | | |   minReads=4
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | read ((GHC.Classes.==) 'c')
+| | | |   minReads=4
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=3
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | commit ExceptionFailure
+| | | |   minReads=3
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | commit ExceptionFailure
+| | | |   minReads=3
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | refJoin join
+| | | |   minReads=3
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | <onException ExceptionFailure>
+| | | | loadInput
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
+| | | | fail []
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
+| <onException ExceptionFailure>
+| | comment "raiseAgainIfConsumed"
+| |   minReads=3
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | saveInput
+| |   minReads=3
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| |                                                                j_1
+| |                                                                _) -> i_0 GHC.Classes.== j_1)
+| |   minReads=3
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | choicesBranch
+| |   minReads=3
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | | <branch (\x_0 -> x_0)>
+| | | | catch ExceptionFailure
+| | | |   minReads=3
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | | <catchScope>
+| | | | | | pushValue GHC.Types.[]
+| | | | | |   minReads=3
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | commit ExceptionFailure
+| | | | | |   minReads=3
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | refJoin join
+| | | | | |   minReads=3
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | <onException ExceptionFailure>
+| | | | | | loadInput
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | |   freeRegs=[]
+| | | | | | fail []
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | |   freeRegs=[]
+| | | <default>
+| | | | fail []
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
diff --git a/tests/Golden/Machine/G3.expected.txt b/tests/Golden/Machine/G3.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Machine/G3.expected.txt
@@ -0,0 +1,126 @@
+pushValue GHC.Show.show
+  minReads=0
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+pushValue (\x_0 -> x_0)
+  minReads=0
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+newRegister reg
+  minReads=0
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+iter loop
+  minReads=0
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[reg]
+| <ok>
+| | pushValue (\x_0 -> (GHC.Types.:) 'a')
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | comment "satisfy ((GHC.Classes.==) 'a')"
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | read ((GHC.Classes.==) 'a')
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | pushValue (\x_0 -> \x_1 -> \x_2 -> x_1 (x_0 x_2))
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | lift2Value (\x_0 -> \x_1 -> x_1 x_0)
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | readRegister reg
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | writeRegister reg
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | jump loop
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| <ko>
+| | comment "raiseAgainIfConsumed"
+| |   minReads=0
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | saveInput
+| |   minReads=0
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| |                                                                j_1
+| |                                                                _) -> i_0 GHC.Classes.== j_1)
+| |   minReads=0
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | choicesBranch
+| |   minReads=0
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | | <branch (\x_0 -> x_0)>
+| | | | readRegister reg
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | pushValue GHC.Types.[]
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | ret
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | <default>
+| | | | fail []
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
diff --git a/tests/Golden/Machine/G4.expected.txt b/tests/Golden/Machine/G4.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Machine/G4.expected.txt
@@ -0,0 +1,228 @@
+let name
+  minReads=4
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+| catch ExceptionFailure
+|   minReads=4
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| | <catchScope>
+| | | pushValue (\x_0 -> \x_1 -> \x_2 -> \x_3 -> (GHC.Types.:) 'a' ((GHC.Types.:) 'b' ((GHC.Types.:) 'c' ((GHC.Types.:) 'd' GHC.Types.[]))))
+| | |   minReads=4
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | comment "satisfy ((GHC.Classes.==) 'a')"
+| | |   minReads=4
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | read ((GHC.Classes.==) 'a')
+| | |   minReads=4
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | |   minReads=3
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | comment "satisfy ((GHC.Classes.==) 'b')"
+| | |   minReads=3
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | read ((GHC.Classes.==) 'b')
+| | |   minReads=3
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | |   minReads=2
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | comment "satisfy ((GHC.Classes.==) 'c')"
+| | |   minReads=2
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | read ((GHC.Classes.==) 'c')
+| | |   minReads=2
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | |   minReads=1
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | comment "satisfy ((GHC.Classes.==) 'd')"
+| | |   minReads=1
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | read ((GHC.Classes.==) 'd')
+| | |   minReads=1
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | |   minReads=0
+| | |   mayRaise=[]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | commit ExceptionFailure
+| | |   minReads=0
+| | |   mayRaise=[]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | ret
+| | |   minReads=0
+| | |   mayRaise=[]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | <onException ExceptionFailure>
+| | | loadInput
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[ExceptionFailure]
+| | |   freeRegs=[]
+| | | fail []
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[ExceptionFailure]
+| | |   freeRegs=[]
+pushValue (\x_0 -> \x_1 -> GHC.Show.show ((GHC.Types.:) x_0 x_1))
+  minReads=4
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+call name
+  minReads=4
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+  minReads=0
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+pushValue (\x_0 -> x_0)
+  minReads=0
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+newRegister reg
+  minReads=0
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+iter loop
+  minReads=0
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[reg]
+| <ok>
+| | pushValue (GHC.Types.:)
+| |   minReads=4
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | call name
+| |   minReads=4
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | pushValue (\x_0 -> \x_1 -> \x_2 -> x_1 (x_0 x_2))
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | lift2Value (\x_0 -> \x_1 -> x_1 x_0)
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | readRegister reg
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | writeRegister reg
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | jump loop
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| <ko>
+| | comment "raiseAgainIfConsumed"
+| |   minReads=0
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | saveInput
+| |   minReads=0
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| |                                                                j_1
+| |                                                                _) -> i_0 GHC.Classes.== j_1)
+| |   minReads=0
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | choicesBranch
+| |   minReads=0
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | | <branch (\x_0 -> x_0)>
+| | | | readRegister reg
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | pushValue GHC.Types.[]
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | ret
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | <default>
+| | | | fail []
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
diff --git a/tests/Golden/Machine/G5.expected.txt b/tests/Golden/Machine/G5.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Machine/G5.expected.txt
@@ -0,0 +1,361 @@
+let name
+  minReads=4
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+| catch ExceptionFailure
+|   minReads=4
+|   mayRaise=[ExceptionFailure]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| | <catchScope>
+| | | pushValue (\x_0 -> \x_1 -> \x_2 -> \x_3 -> (GHC.Types.:) 'a' ((GHC.Types.:) 'b' ((GHC.Types.:) 'c' ((GHC.Types.:) 'd' GHC.Types.[]))))
+| | |   minReads=4
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | comment "satisfy ((GHC.Classes.==) 'a')"
+| | |   minReads=4
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | read ((GHC.Classes.==) 'a')
+| | |   minReads=4
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | |   minReads=3
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | comment "satisfy ((GHC.Classes.==) 'b')"
+| | |   minReads=3
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | read ((GHC.Classes.==) 'b')
+| | |   minReads=3
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | |   minReads=2
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | comment "satisfy ((GHC.Classes.==) 'c')"
+| | |   minReads=2
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | read ((GHC.Classes.==) 'c')
+| | |   minReads=2
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | |   minReads=1
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | comment "satisfy ((GHC.Classes.==) 'd')"
+| | |   minReads=1
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | read ((GHC.Classes.==) 'd')
+| | |   minReads=1
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | |   minReads=0
+| | |   mayRaise=[]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | commit ExceptionFailure
+| | |   minReads=0
+| | |   mayRaise=[]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | | ret
+| | |   minReads=0
+| | |   mayRaise=[]
+| | |   alwaysRaise=[]
+| | |   freeRegs=[]
+| | <onException ExceptionFailure>
+| | | loadInput
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[ExceptionFailure]
+| | |   freeRegs=[]
+| | | fail []
+| | |   minReads=0
+| | |   mayRaise=[ExceptionFailure]
+| | |   alwaysRaise=[ExceptionFailure]
+| | |   freeRegs=[]
+pushValue (\x_0 -> \x_1 -> \x_2 -> GHC.Show.show ((GHC.Types.:) x_0 x_1))
+  minReads=4
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+call name
+  minReads=4
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+  minReads=0
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+pushValue (\x_0 -> x_0)
+  minReads=0
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+newRegister reg
+  minReads=0
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+iter loop
+  minReads=0
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[reg]
+| <ok>
+| | pushValue (GHC.Types.:)
+| |   minReads=4
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | call name
+| |   minReads=4
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | pushValue (\x_0 -> \x_1 -> \x_2 -> x_1 (x_0 x_2))
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | lift2Value (\x_0 -> \x_1 -> x_1 x_0)
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | readRegister reg
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | writeRegister reg
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | jump loop
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| <ko>
+| | comment "raiseAgainIfConsumed"
+| |   minReads=0
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | saveInput
+| |   minReads=0
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| |                                                                j_1
+| |                                                                _) -> i_0 GHC.Classes.== j_1)
+| |   minReads=0
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | choicesBranch
+| |   minReads=0
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | | <branch (\x_0 -> x_0)>
+| | | | readRegister reg
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | pushValue GHC.Types.[]
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | join join
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | ret
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | catch ExceptionFailure
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | | <catchScope>
+| | | | | | comment "negLook"
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | catch ExceptionFailure
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | | <catchScope>
+| | | | | | | | comment "negLook.ahead"
+| | | | | | | |   minReads=1
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | saveInput
+| | | | | | | |   minReads=1
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | comment "satisfy ((\\x_0 -> \\x_1 -> x_0) GHC.Types.True)"
+| | | | | | | |   minReads=1
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | read (\x_0 -> GHC.Types.True)
+| | | | | | | |   minReads=1
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | popValue
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | commit ExceptionFailure
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | loadInput
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | fail []
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | <onException ExceptionFailure>
+| | | | | | | | comment "negLook.reset"
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | loadInput
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | pushValue GHC.Tuple.()
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | commit ExceptionFailure
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | refJoin join
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | <onException ExceptionFailure>
+| | | | | | comment "raiseAgainIfConsumed"
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | saveInput
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| | | | | |                                                                j_1
+| | | | | |                                                                _) -> i_0 GHC.Classes.== j_1)
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | choicesBranch
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | | <branch (\x_0 -> x_0)>
+| | | | | | | | comment "eof.fail"
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | fail [FailureEnd]
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | <default>
+| | | | | | | | fail []
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | <default>
+| | | | fail []
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
diff --git a/tests/Golden/Machine/G6.expected.txt b/tests/Golden/Machine/G6.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Machine/G6.expected.txt
@@ -0,0 +1,141 @@
+pushValue GHC.Show.show
+  minReads=2
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+join join
+  minReads=0
+  mayRaise=[]
+  alwaysRaise=[]
+  freeRegs=[]
+| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| ret
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+catch ExceptionFailure
+  minReads=2
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+| <catchScope>
+| | pushValue (\x_0 -> \x_1 -> (GHC.Types.:) 'a' ((GHC.Types.:) 'a' GHC.Types.[]))
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | comment "satisfy ((GHC.Classes.==) 'a')"
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | read ((GHC.Classes.==) 'a')
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | comment "satisfy ((GHC.Classes.==) 'a')"
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | read ((GHC.Classes.==) 'a')
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | commit ExceptionFailure
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | refJoin join
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| <onException ExceptionFailure>
+| | comment "raiseAgainIfConsumed"
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | saveInput
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| |                                                                j_1
+| |                                                                _) -> i_0 GHC.Classes.== j_1)
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | choicesBranch
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | | <branch (\x_0 -> x_0)>
+| | | | pushValue (\x_0 -> \x_1 -> (GHC.Types.:) 'a' ((GHC.Types.:) 'b' GHC.Types.[]))
+| | | |   minReads=2
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | comment "satisfy ((GHC.Classes.==) 'a')"
+| | | |   minReads=2
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | read ((GHC.Classes.==) 'a')
+| | | |   minReads=2
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=1
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | comment "satisfy ((GHC.Classes.==) 'b')"
+| | | |   minReads=1
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | read ((GHC.Classes.==) 'b')
+| | | |   minReads=1
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | refJoin join
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | <default>
+| | | | fail []
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
diff --git a/tests/Golden/Machine/G7.expected.txt b/tests/Golden/Machine/G7.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Machine/G7.expected.txt
@@ -0,0 +1,185 @@
+pushValue GHC.Show.show
+  minReads=2
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+join join
+  minReads=0
+  mayRaise=[]
+  alwaysRaise=[]
+  freeRegs=[]
+| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| ret
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+catch ExceptionFailure
+  minReads=2
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+| <catchScope>
+| | catch ExceptionFailure
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | | <catchScope>
+| | | | pushValue (\x_0 -> \x_1 -> (GHC.Types.:) 'a' ((GHC.Types.:) 'a' GHC.Types.[]))
+| | | |   minReads=2
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | comment "satisfy ((GHC.Classes.==) 'a')"
+| | | |   minReads=2
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | read ((GHC.Classes.==) 'a')
+| | | |   minReads=2
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=1
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | comment "satisfy ((GHC.Classes.==) 'a')"
+| | | |   minReads=1
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | read ((GHC.Classes.==) 'a')
+| | | |   minReads=1
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | commit ExceptionFailure
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | commit ExceptionFailure
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | refJoin join
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | <onException ExceptionFailure>
+| | | | loadInput
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
+| | | | fail []
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
+| <onException ExceptionFailure>
+| | comment "raiseAgainIfConsumed"
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | saveInput
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| |                                                                j_1
+| |                                                                _) -> i_0 GHC.Classes.== j_1)
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | choicesBranch
+| |   minReads=2
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | | <branch (\x_0 -> x_0)>
+| | | | catch ExceptionFailure
+| | | |   minReads=2
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | | <catchScope>
+| | | | | | pushValue (\x_0 -> \x_1 -> (GHC.Types.:) 'a' ((GHC.Types.:) 'b' GHC.Types.[]))
+| | | | | |   minReads=2
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | comment "satisfy ((GHC.Classes.==) 'a')"
+| | | | | |   minReads=2
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | read ((GHC.Classes.==) 'a')
+| | | | | |   minReads=2
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | |   minReads=1
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | comment "satisfy ((GHC.Classes.==) 'b')"
+| | | | | |   minReads=1
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | read ((GHC.Classes.==) 'b')
+| | | | | |   minReads=1
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | commit ExceptionFailure
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | refJoin join
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | <onException ExceptionFailure>
+| | | | | | loadInput
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | |   freeRegs=[]
+| | | | | | fail []
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | |   freeRegs=[]
+| | | <default>
+| | | | fail []
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
diff --git a/tests/Golden/Machine/G8.expected.txt b/tests/Golden/Machine/G8.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Machine/G8.expected.txt
@@ -0,0 +1,259 @@
+pushValue (\x_0 -> \x_1 -> GHC.Show.show x_0)
+  minReads=0
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+pushValue (\x_0 -> x_0)
+  minReads=0
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+newRegister reg
+  minReads=0
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+iter loop
+  minReads=0
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[reg]
+| <ok>
+| | pushValue (\x_0 -> (GHC.Types.:) 'r')
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | comment "satisfy ((GHC.Classes.==) 'r')"
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | read ((GHC.Classes.==) 'r')
+| |   minReads=1
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | pushValue (\x_0 -> \x_1 -> \x_2 -> x_1 (x_0 x_2))
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | lift2Value (\x_0 -> \x_1 -> x_1 x_0)
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | readRegister reg
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | writeRegister reg
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | jump loop
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| <ko>
+| | comment "raiseAgainIfConsumed"
+| |   minReads=0
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | saveInput
+| |   minReads=0
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| |                                                                j_1
+| |                                                                _) -> i_0 GHC.Classes.== j_1)
+| |   minReads=0
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | choicesBranch
+| |   minReads=0
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[reg]
+| | | <branch (\x_0 -> x_0)>
+| | | | readRegister reg
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[reg]
+| | | | pushValue GHC.Types.[]
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | join join
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | | lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | | ret
+| | | | |   minReads=0
+| | | | |   mayRaise=[]
+| | | | |   alwaysRaise=[]
+| | | | |   freeRegs=[]
+| | | | catch ExceptionFailure
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | | <catchScope>
+| | | | | | comment "negLook"
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | catch ExceptionFailure
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | | <catchScope>
+| | | | | | | | comment "negLook.ahead"
+| | | | | | | |   minReads=1
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | saveInput
+| | | | | | | |   minReads=1
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | comment "satisfy ((\\x_0 -> \\x_1 -> x_0) GHC.Types.True)"
+| | | | | | | |   minReads=1
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | read (\x_0 -> GHC.Types.True)
+| | | | | | | |   minReads=1
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | popValue
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | commit ExceptionFailure
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | loadInput
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | fail []
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | <onException ExceptionFailure>
+| | | | | | | | comment "negLook.reset"
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | loadInput
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | pushValue GHC.Tuple.()
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | commit ExceptionFailure
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | refJoin join
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[]
+| | | | | | | |   alwaysRaise=[]
+| | | | | | | |   freeRegs=[]
+| | | | | <onException ExceptionFailure>
+| | | | | | comment "raiseAgainIfConsumed"
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | saveInput
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| | | | | |                                                                j_1
+| | | | | |                                                                _) -> i_0 GHC.Classes.== j_1)
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | choicesBranch
+| | | | | |   minReads=0
+| | | | | |   mayRaise=[ExceptionFailure]
+| | | | | |   alwaysRaise=[]
+| | | | | |   freeRegs=[]
+| | | | | | | <branch (\x_0 -> x_0)>
+| | | | | | | | comment "eof.fail"
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | | fail [FailureEnd]
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | | | | | <default>
+| | | | | | | | fail []
+| | | | | | | |   minReads=0
+| | | | | | | |   mayRaise=[ExceptionFailure]
+| | | | | | | |   alwaysRaise=[ExceptionFailure]
+| | | | | | | |   freeRegs=[]
+| | | <default>
+| | | | fail []
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
diff --git a/tests/Golden/Machine/G9.expected.txt b/tests/Golden/Machine/G9.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Machine/G9.expected.txt
@@ -0,0 +1,143 @@
+pushValue GHC.Show.show
+  minReads=0
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+join join
+  minReads=0
+  mayRaise=[]
+  alwaysRaise=[]
+  freeRegs=[]
+| lift2Value (\x_0 -> \x_1 -> x_0 x_1)
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+| ret
+|   minReads=0
+|   mayRaise=[]
+|   alwaysRaise=[]
+|   freeRegs=[]
+catch ExceptionFailure
+  minReads=0
+  mayRaise=[ExceptionFailure]
+  alwaysRaise=[]
+  freeRegs=[]
+| <catchScope>
+| | comment "negLook"
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | catch ExceptionFailure
+| |   minReads=0
+| |   mayRaise=[]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | | <catchScope>
+| | | | comment "negLook.ahead"
+| | | |   minReads=1
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
+| | | | saveInput
+| | | |   minReads=1
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
+| | | | comment "satisfy ((\\x_0 -> \\x_1 -> x_0) GHC.Types.True)"
+| | | |   minReads=1
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
+| | | | read (\x_0 -> GHC.Types.True)
+| | | |   minReads=1
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
+| | | | popValue
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
+| | | | commit ExceptionFailure
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
+| | | | loadInput
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
+| | | | fail []
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
+| | | <onException ExceptionFailure>
+| | | | comment "negLook.reset"
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | loadInput
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | pushValue GHC.Tuple.()
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | commit ExceptionFailure
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| | | | refJoin join
+| | | |   minReads=0
+| | | |   mayRaise=[]
+| | | |   alwaysRaise=[]
+| | | |   freeRegs=[]
+| <onException ExceptionFailure>
+| | comment "raiseAgainIfConsumed"
+| |   minReads=0
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | saveInput
+| |   minReads=0
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | lift2Value (\(Data.Text.Internal.Text _ i_0 _) (Data.Text.Internal.Text _
+| |                                                                j_1
+| |                                                                _) -> i_0 GHC.Classes.== j_1)
+| |   minReads=0
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | choicesBranch
+| |   minReads=0
+| |   mayRaise=[ExceptionFailure]
+| |   alwaysRaise=[]
+| |   freeRegs=[]
+| | | <branch (\x_0 -> x_0)>
+| | | | comment "eof.fail"
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
+| | | | fail [FailureEnd]
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
+| | | <default>
+| | | | fail []
+| | | |   minReads=0
+| | | |   mayRaise=[ExceptionFailure]
+| | | |   alwaysRaise=[ExceptionFailure]
+| | | |   freeRegs=[]
diff --git a/tests/Golden/Parser.hs b/tests/Golden/Parser.hs
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser.hs
@@ -0,0 +1,91 @@
+{-# LANGUAGE DataKinds #-} -- For using P.viewGrammar
+{-# LANGUAGE FlexibleContexts #-} -- For using P.Grammar Char
+{-# LANGUAGE Rank2Types #-}
+{-# LANGUAGE TypeApplications #-}
+-- For TH splices
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE Rank2Types #-}
+{-# LANGUAGE ScopedTypeVariables #-}
+{-# LANGUAGE UnboxedTuples #-}
+{-# OPTIONS_GHC -Wno-missing-signatures #-}
+{-# OPTIONS_GHC -Wno-unused-local-binds #-}
+{-# OPTIONS_GHC -Wno-unused-matches #-}
+module Golden.Parser where
+
+import Control.Monad (Monad(..))
+import Data.Either (Either(..))
+import Data.Function (($))
+import Data.Functor ((<$>))
+import Data.Int (Int)
+import Data.Semigroup (Semigroup(..))
+import Data.String (String, IsString(..))
+import Data.Text (Text)
+import Data.Text.IO (readFile)
+import System.FilePath ((<.>), (</>), dropExtensions, takeBaseName)
+import System.IO.Unsafe (unsafePerformIO)
+import Test.Tasty
+import Test.Tasty.Golden
+import Text.Show (Show(..))
+import qualified Control.Exception as IO
+import qualified Data.List as List
+import qualified System.Directory as IO
+import qualified System.IO.Error as IO
+import qualified Language.Haskell.TH as TH
+
+import qualified Symantic.Parser as P
+import Golden.Utils
+import Golden.Splice
+
+goldens :: TestTree
+goldens = testGroup "Parser" $
+  (\f -> List.zipWith f parsers [1::Int ..]) $ \p g ->
+  -- Collect the existing files: tests/Golden/Parser/G*.input.txt
+  let parserDir = getGoldenDir $ "Parser/G"<>show g in
+  let inputs =
+        ((parserDir </>) <$>) $
+        List.sort $
+        List.filter (List.isSuffixOf ".input.txt") $
+        unsafePerformIO $
+          IO.catchIOError
+            (IO.listDirectory parserDir)
+            (\exn ->
+              if IO.isDoesNotExistError exn
+              then return []
+              else IO.throwIO exn
+            ) in
+  testGroup ("G"<>show g) $ (<$> inputs) $ \inp ->
+    goldenVsStringDiff (takeBaseName (dropExtensions inp)) goldenDiff
+      (dropExtensions inp<.>"expected.txt") $ do
+      input <- readFile inp
+      return $ fromString $
+        case p input of
+          Left err -> show err
+          Right a -> a
+
+parsers :: [Text -> Either (P.ParsingError Text) String]
+parsers =
+  [ p1, p2, p3, p4, p5, p6, p7, p8, p9
+  , p10, p11, p12, p13, p14, p15, p16, p17, p18, p19
+  , p20
+  ]
+
+p1 = $$(TH.Code $ TH.runIO s1)
+p2 = $$(TH.Code $ TH.runIO s2)
+p3 = $$(TH.Code $ TH.runIO s3)
+p4 = $$(TH.Code $ TH.runIO s4)
+p5 = $$(TH.Code $ TH.runIO s5)
+p6 = $$(TH.Code $ TH.runIO s6)
+p7 = $$(TH.Code $ TH.runIO s7)
+p8 = $$(TH.Code $ TH.runIO s8)
+p9 = $$(TH.Code $ TH.runIO s9)
+p10 = $$(TH.Code $ TH.runIO s10)
+p11 = $$(TH.Code $ TH.runIO s11)
+p12 = $$(TH.Code $ TH.runIO s12)
+p13 = $$(TH.Code $ TH.runIO s13)
+p14 = $$(TH.Code $ TH.runIO s14)
+p15 = $$(TH.Code $ TH.runIO s15)
+p16 = $$(TH.Code $ TH.runIO s16)
+p17 = $$(TH.Code $ TH.runIO s17)
+p18 = $$(TH.Code $ TH.runIO s18)
+p19 = $$(TH.Code $ TH.runIO s19)
+p20 = $$(TH.Code $ TH.runIO s20)
diff --git a/tests/Golden/Parser/G1/P1.expected.txt b/tests/Golden/Parser/G1/P1.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G1/P1.expected.txt
@@ -0,0 +1,1 @@
+'a'
diff --git a/tests/Golden/Parser/G1/P1.input.txt b/tests/Golden/Parser/G1/P1.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G1/P1.input.txt
@@ -0,0 +1,1 @@
+a
diff --git a/tests/Golden/Parser/G10/P1.expected.txt b/tests/Golden/Parser/G10/P1.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G10/P1.expected.txt
@@ -0,0 +1,1 @@
+ParsingErrorStandard {parsingErrorOffset = 0, parsingErrorException = ExceptionFailure, parsingErrorUnexpected = Just 'c', parsingErrorExpecting = fromList [FailureToken 'a',FailureToken 'b']}
diff --git a/tests/Golden/Parser/G10/P1.input.txt b/tests/Golden/Parser/G10/P1.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G10/P1.input.txt
@@ -0,0 +1,1 @@
+c
diff --git a/tests/Golden/Parser/G11/P1.expected.txt b/tests/Golden/Parser/G11/P1.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G11/P1.expected.txt
@@ -0,0 +1,1 @@
+ParsingErrorStandard {parsingErrorOffset = 4, parsingErrorException = ExceptionFailure, parsingErrorUnexpected = Just 'c', parsingErrorExpecting = fromList [FailureToken 'a',FailureToken 'b']}
diff --git a/tests/Golden/Parser/G11/P1.input.txt b/tests/Golden/Parser/G11/P1.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G11/P1.input.txt
@@ -0,0 +1,1 @@
+aaaac
diff --git a/tests/Golden/Parser/G12/P1.expected.txt b/tests/Golden/Parser/G12/P1.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G12/P1.expected.txt
@@ -0,0 +1,1 @@
+"baacbccbaa"
diff --git a/tests/Golden/Parser/G12/P1.input.txt b/tests/Golden/Parser/G12/P1.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G12/P1.input.txt
@@ -0,0 +1,1 @@
+baacbccbaa
diff --git a/tests/Golden/Parser/G13/P1.expected.txt b/tests/Golden/Parser/G13/P1.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G13/P1.expected.txt
@@ -0,0 +1,1 @@
+[Increment,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Loop [Forward,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Forward,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Forward,Increment,Increment,Increment,Forward,Increment,Backward,Backward,Backward,Backward,Decrement],Forward,Increment,Increment,Output,Forward,Increment,Output,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Output,Output,Increment,Increment,Increment,Output,Forward,Increment,Increment,Output,Backward,Backward,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Increment,Output,Forward,Output,Increment,Increment,Increment,Output,Decrement,Decrement,Decrement,Decrement,Decrement,Decrement,Output,Decrement,Decrement,Decrement,Decrement,Decrement,Decrement,Decrement,Decrement,Output,Forward,Increment,Output,Forward,Output]
diff --git a/tests/Golden/Parser/G13/P1.input.txt b/tests/Golden/Parser/G13/P1.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G13/P1.input.txt
@@ -0,0 +1,1 @@
+++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
diff --git a/tests/Golden/Parser/G13/P2.expected.txt b/tests/Golden/Parser/G13/P2.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G13/P2.expected.txt
@@ -0,0 +1,1 @@
+[Loop [Decrement]]
diff --git a/tests/Golden/Parser/G13/P2.input.txt b/tests/Golden/Parser/G13/P2.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G13/P2.input.txt
@@ -0,0 +1,3 @@
+[     boucle
+-     enlever 1 à la case courante
+]     jusqu'à ce que la case soit à zéro
diff --git a/tests/Golden/Parser/G17/P1.expected.txt b/tests/Golden/Parser/G17/P1.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G17/P1.expected.txt
@@ -0,0 +1,1 @@
+('a','a')
diff --git a/tests/Golden/Parser/G17/P1.input.txt b/tests/Golden/Parser/G17/P1.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G17/P1.input.txt
@@ -0,0 +1,1 @@
+a
diff --git a/tests/Golden/Parser/G18/P1.expected.txt b/tests/Golden/Parser/G18/P1.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G18/P1.expected.txt
@@ -0,0 +1,1 @@
+"abc"
diff --git a/tests/Golden/Parser/G18/P1.input.txt b/tests/Golden/Parser/G18/P1.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G18/P1.input.txt
@@ -0,0 +1,1 @@
+abc
diff --git a/tests/Golden/Parser/G18/P2.expected.txt b/tests/Golden/Parser/G18/P2.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G18/P2.expected.txt
@@ -0,0 +1,1 @@
+"de"
diff --git a/tests/Golden/Parser/G18/P2.input.txt b/tests/Golden/Parser/G18/P2.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G18/P2.input.txt
@@ -0,0 +1,1 @@
+de
diff --git a/tests/Golden/Parser/G18/P3.expected.txt b/tests/Golden/Parser/G18/P3.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G18/P3.expected.txt
@@ -0,0 +1,1 @@
+ParsingErrorStandard {parsingErrorOffset = 0, parsingErrorException = ExceptionFailure, parsingErrorUnexpected = Just 'a', parsingErrorExpecting = fromList [FailureHorizon 2]}
diff --git a/tests/Golden/Parser/G18/P3.input.txt b/tests/Golden/Parser/G18/P3.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G18/P3.input.txt
@@ -0,0 +1,1 @@
+a
diff --git a/tests/Golden/Parser/G18/P4.expected.txt b/tests/Golden/Parser/G18/P4.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G18/P4.expected.txt
@@ -0,0 +1,1 @@
+ParsingErrorStandard {parsingErrorOffset = 2, parsingErrorException = ExceptionFailure, parsingErrorUnexpected = Nothing, parsingErrorExpecting = fromList [FailureHorizon 1]}
diff --git a/tests/Golden/Parser/G18/P4.input.txt b/tests/Golden/Parser/G18/P4.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G18/P4.input.txt
@@ -0,0 +1,1 @@
+ab
diff --git a/tests/Golden/Parser/G18/P5.expected.txt b/tests/Golden/Parser/G18/P5.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G18/P5.expected.txt
@@ -0,0 +1,1 @@
+ParsingErrorStandard {parsingErrorOffset = 2, parsingErrorException = ExceptionFailure, parsingErrorUnexpected = Just 'C', parsingErrorExpecting = fromList [FailureToken 'c']}
diff --git a/tests/Golden/Parser/G18/P5.input.txt b/tests/Golden/Parser/G18/P5.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G18/P5.input.txt
@@ -0,0 +1,1 @@
+abC
diff --git a/tests/Golden/Parser/G19/P1.expected.txt b/tests/Golden/Parser/G19/P1.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G19/P1.expected.txt
@@ -0,0 +1,1 @@
+ParsingErrorStandard {parsingErrorOffset = 0, parsingErrorException = ExceptionFailure, parsingErrorUnexpected = Nothing, parsingErrorExpecting = fromList [FailureHorizon 2]}
diff --git a/tests/Golden/Parser/G19/P1.input.txt b/tests/Golden/Parser/G19/P1.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G19/P1.input.txt
diff --git a/tests/Golden/Parser/G19/P2.expected.txt b/tests/Golden/Parser/G19/P2.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G19/P2.expected.txt
@@ -0,0 +1,1 @@
+ParsingErrorStandard {parsingErrorOffset = 0, parsingErrorException = ExceptionFailure, parsingErrorUnexpected = Just 'a', parsingErrorExpecting = fromList [FailureHorizon 2]}
diff --git a/tests/Golden/Parser/G19/P2.input.txt b/tests/Golden/Parser/G19/P2.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G19/P2.input.txt
@@ -0,0 +1,1 @@
+a
diff --git a/tests/Golden/Parser/G19/P3.expected.txt b/tests/Golden/Parser/G19/P3.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G19/P3.expected.txt
@@ -0,0 +1,1 @@
+ParsingErrorStandard {parsingErrorOffset = 2, parsingErrorException = ExceptionFailure, parsingErrorUnexpected = Nothing, parsingErrorExpecting = fromList [FailureHorizon 1]}
diff --git a/tests/Golden/Parser/G19/P3.input.txt b/tests/Golden/Parser/G19/P3.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G19/P3.input.txt
@@ -0,0 +1,1 @@
+ab
diff --git a/tests/Golden/Parser/G19/P4.expected.txt b/tests/Golden/Parser/G19/P4.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G19/P4.expected.txt
@@ -0,0 +1,1 @@
+"abc"
diff --git a/tests/Golden/Parser/G19/P4.input.txt b/tests/Golden/Parser/G19/P4.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G19/P4.input.txt
@@ -0,0 +1,1 @@
+abc
diff --git a/tests/Golden/Parser/G19/P5.expected.txt b/tests/Golden/Parser/G19/P5.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G19/P5.expected.txt
@@ -0,0 +1,1 @@
+ParsingErrorStandard {parsingErrorOffset = 2, parsingErrorException = ExceptionFailure, parsingErrorUnexpected = Just 'C', parsingErrorExpecting = fromList [FailureToken 'c']}
diff --git a/tests/Golden/Parser/G19/P5.input.txt b/tests/Golden/Parser/G19/P5.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G19/P5.input.txt
@@ -0,0 +1,1 @@
+abC
diff --git a/tests/Golden/Parser/G19/P6.expected.txt b/tests/Golden/Parser/G19/P6.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G19/P6.expected.txt
@@ -0,0 +1,1 @@
+ParsingErrorStandard {parsingErrorOffset = 2, parsingErrorException = ExceptionFailure, parsingErrorUnexpected = Just 'd', parsingErrorExpecting = fromList [FailureToken 'c']}
diff --git a/tests/Golden/Parser/G19/P6.input.txt b/tests/Golden/Parser/G19/P6.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G19/P6.input.txt
@@ -0,0 +1,1 @@
+abde
diff --git a/tests/Golden/Parser/G19/P7.expected.txt b/tests/Golden/Parser/G19/P7.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G19/P7.expected.txt
@@ -0,0 +1,1 @@
+ParsingErrorStandard {parsingErrorOffset = 0, parsingErrorException = ExceptionFailure, parsingErrorUnexpected = Just 'd', parsingErrorExpecting = fromList [FailureHorizon 2]}
diff --git a/tests/Golden/Parser/G19/P7.input.txt b/tests/Golden/Parser/G19/P7.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G19/P7.input.txt
@@ -0,0 +1,1 @@
+d
diff --git a/tests/Golden/Parser/G19/P8.expected.txt b/tests/Golden/Parser/G19/P8.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G19/P8.expected.txt
@@ -0,0 +1,1 @@
+"de"
diff --git a/tests/Golden/Parser/G19/P8.input.txt b/tests/Golden/Parser/G19/P8.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G19/P8.input.txt
@@ -0,0 +1,1 @@
+de
diff --git a/tests/Golden/Parser/G19/P9.expected.txt b/tests/Golden/Parser/G19/P9.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G19/P9.expected.txt
@@ -0,0 +1,1 @@
+ParsingErrorStandard {parsingErrorOffset = 2, parsingErrorException = ExceptionFailure, parsingErrorUnexpected = Just 'f', parsingErrorExpecting = fromList [FailureToken 'c']}
diff --git a/tests/Golden/Parser/G19/P9.input.txt b/tests/Golden/Parser/G19/P9.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G19/P9.input.txt
@@ -0,0 +1,1 @@
+abfg
diff --git a/tests/Golden/Parser/G2/P1.expected.txt b/tests/Golden/Parser/G2/P1.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G2/P1.expected.txt
@@ -0,0 +1,1 @@
+"abc"
diff --git a/tests/Golden/Parser/G2/P1.input.txt b/tests/Golden/Parser/G2/P1.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G2/P1.input.txt
@@ -0,0 +1,1 @@
+abc
diff --git a/tests/Golden/Parser/G2/P2.expected.txt b/tests/Golden/Parser/G2/P2.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G2/P2.expected.txt
@@ -0,0 +1,1 @@
+ParsingErrorStandard {parsingErrorOffset = 0, parsingErrorException = ExceptionFailure, parsingErrorUnexpected = Just 'a', parsingErrorExpecting = fromList [FailureHorizon 3]}
diff --git a/tests/Golden/Parser/G2/P2.input.txt b/tests/Golden/Parser/G2/P2.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G2/P2.input.txt
@@ -0,0 +1,1 @@
+ab
diff --git a/tests/Golden/Parser/G20/P1.expected.txt b/tests/Golden/Parser/G20/P1.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G20/P1.expected.txt
@@ -0,0 +1,1 @@
+ParsingErrorStandard {parsingErrorOffset = 0, parsingErrorException = ExceptionFailure, parsingErrorUnexpected = Just '1', parsingErrorExpecting = fromList []}
diff --git a/tests/Golden/Parser/G20/P1.input.txt b/tests/Golden/Parser/G20/P1.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G20/P1.input.txt
@@ -0,0 +1,1 @@
+123ab
diff --git a/tests/Golden/Parser/G20/P2.expected.txt b/tests/Golden/Parser/G20/P2.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G20/P2.expected.txt
@@ -0,0 +1,1 @@
+ParsingErrorStandard {parsingErrorOffset = 3, parsingErrorException = ExceptionFailure, parsingErrorUnexpected = Nothing, parsingErrorExpecting = fromList [FailureHorizon 3]}
diff --git a/tests/Golden/Parser/G20/P2.input.txt b/tests/Golden/Parser/G20/P2.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G20/P2.input.txt
@@ -0,0 +1,1 @@
+abc
diff --git a/tests/Golden/Parser/G20/P3.expected.txt b/tests/Golden/Parser/G20/P3.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G20/P3.expected.txt
@@ -0,0 +1,1 @@
+ParsingErrorStandard {parsingErrorOffset = 0, parsingErrorException = ExceptionFailure, parsingErrorUnexpected = Just '1', parsingErrorExpecting = fromList []}
diff --git a/tests/Golden/Parser/G20/P3.input.txt b/tests/Golden/Parser/G20/P3.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G20/P3.input.txt
@@ -0,0 +1,1 @@
+123abc
diff --git a/tests/Golden/Parser/G3/P1.expected.txt b/tests/Golden/Parser/G3/P1.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G3/P1.expected.txt
@@ -0,0 +1,1 @@
+"aaaaa"
diff --git a/tests/Golden/Parser/G3/P1.input.txt b/tests/Golden/Parser/G3/P1.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G3/P1.input.txt
@@ -0,0 +1,1 @@
+aaaaa
diff --git a/tests/Golden/Parser/G4/P1.expected.txt b/tests/Golden/Parser/G4/P1.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G4/P1.expected.txt
@@ -0,0 +1,1 @@
+["abcd","abcd","abcd"]
diff --git a/tests/Golden/Parser/G4/P1.input.txt b/tests/Golden/Parser/G4/P1.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G4/P1.input.txt
@@ -0,0 +1,1 @@
+abcdabcdabcd
diff --git a/tests/Golden/Parser/G4/P2.expected.txt b/tests/Golden/Parser/G4/P2.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G4/P2.expected.txt
@@ -0,0 +1,1 @@
+["abcd","abcd","abcd"]
diff --git a/tests/Golden/Parser/G4/P2.input.txt b/tests/Golden/Parser/G4/P2.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G4/P2.input.txt
@@ -0,0 +1,1 @@
+abcdabcdabcde
diff --git a/tests/Golden/Parser/G4/P3.expected.txt b/tests/Golden/Parser/G4/P3.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G4/P3.expected.txt
@@ -0,0 +1,1 @@
+["abcd","abcd","abcd"]
diff --git a/tests/Golden/Parser/G4/P3.input.txt b/tests/Golden/Parser/G4/P3.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G4/P3.input.txt
@@ -0,0 +1,1 @@
+abcdabcdabcdefgh
diff --git a/tests/Golden/Parser/G5/P1.expected.txt b/tests/Golden/Parser/G5/P1.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G5/P1.expected.txt
@@ -0,0 +1,1 @@
+ParsingErrorStandard {parsingErrorOffset = 0, parsingErrorException = ExceptionFailure, parsingErrorUnexpected = Just 'a', parsingErrorExpecting = fromList [FailureHorizon 4]}
diff --git a/tests/Golden/Parser/G5/P1.input.txt b/tests/Golden/Parser/G5/P1.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G5/P1.input.txt
@@ -0,0 +1,1 @@
+abc
diff --git a/tests/Golden/Parser/G5/P2.expected.txt b/tests/Golden/Parser/G5/P2.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G5/P2.expected.txt
@@ -0,0 +1,1 @@
+ParsingErrorStandard {parsingErrorOffset = 4, parsingErrorException = ExceptionFailure, parsingErrorUnexpected = Just 'a', parsingErrorExpecting = fromList [FailureEnd,FailureHorizon 4]}
diff --git a/tests/Golden/Parser/G5/P2.input.txt b/tests/Golden/Parser/G5/P2.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G5/P2.input.txt
@@ -0,0 +1,1 @@
+abcdabc
diff --git a/tests/Golden/Parser/G5/P3.expected.txt b/tests/Golden/Parser/G5/P3.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G5/P3.expected.txt
@@ -0,0 +1,1 @@
+ParsingErrorStandard {parsingErrorOffset = 4, parsingErrorException = ExceptionFailure, parsingErrorUnexpected = Just 'e', parsingErrorExpecting = fromList [FailureEnd,FailureToken 'a']}
diff --git a/tests/Golden/Parser/G5/P3.input.txt b/tests/Golden/Parser/G5/P3.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G5/P3.input.txt
@@ -0,0 +1,1 @@
+abcdefgh
diff --git a/tests/Golden/Parser/G6/P1.expected.txt b/tests/Golden/Parser/G6/P1.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G6/P1.expected.txt
@@ -0,0 +1,1 @@
+ParsingErrorStandard {parsingErrorOffset = 1, parsingErrorException = ExceptionFailure, parsingErrorUnexpected = Just 'b', parsingErrorExpecting = fromList [FailureToken 'a']}
diff --git a/tests/Golden/Parser/G6/P1.input.txt b/tests/Golden/Parser/G6/P1.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G6/P1.input.txt
@@ -0,0 +1,1 @@
+ab
diff --git a/tests/Golden/Parser/G7/P1.expected.txt b/tests/Golden/Parser/G7/P1.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G7/P1.expected.txt
@@ -0,0 +1,1 @@
+"ab"
diff --git a/tests/Golden/Parser/G7/P1.input.txt b/tests/Golden/Parser/G7/P1.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G7/P1.input.txt
@@ -0,0 +1,1 @@
+ab
diff --git a/tests/Golden/Parser/G7/P2.expected.txt b/tests/Golden/Parser/G7/P2.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G7/P2.expected.txt
@@ -0,0 +1,1 @@
+"aa"
diff --git a/tests/Golden/Parser/G7/P2.input.txt b/tests/Golden/Parser/G7/P2.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G7/P2.input.txt
@@ -0,0 +1,1 @@
+aa
diff --git a/tests/Golden/Parser/G8/P1.expected.txt b/tests/Golden/Parser/G8/P1.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G8/P1.expected.txt
@@ -0,0 +1,1 @@
+ParsingErrorStandard {parsingErrorOffset = 3, parsingErrorException = ExceptionFailure, parsingErrorUnexpected = Just 'a', parsingErrorExpecting = fromList [FailureEnd,FailureToken 'r']}
diff --git a/tests/Golden/Parser/G8/P1.input.txt b/tests/Golden/Parser/G8/P1.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G8/P1.input.txt
@@ -0,0 +1,1 @@
+rrra
diff --git a/tests/Golden/Parser/G9/P1.expected.txt b/tests/Golden/Parser/G9/P1.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G9/P1.expected.txt
@@ -0,0 +1,1 @@
+()
diff --git a/tests/Golden/Parser/G9/P1.input.txt b/tests/Golden/Parser/G9/P1.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G9/P1.input.txt
diff --git a/tests/Golden/Parser/G9/P2.expected.txt b/tests/Golden/Parser/G9/P2.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G9/P2.expected.txt
@@ -0,0 +1,1 @@
+ParsingErrorStandard {parsingErrorOffset = 0, parsingErrorException = ExceptionFailure, parsingErrorUnexpected = Just 'a', parsingErrorExpecting = fromList [FailureEnd]}
diff --git a/tests/Golden/Parser/G9/P2.input.txt b/tests/Golden/Parser/G9/P2.input.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/G9/P2.input.txt
@@ -0,0 +1,1 @@
+a
diff --git a/tests/Golden/Parser/left-right.txt b/tests/Golden/Parser/left-right.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Parser/left-right.txt
@@ -0,0 +1,1 @@
+aa
diff --git a/tests/Golden/Splice.hs b/tests/Golden/Splice.hs
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Splice.hs
@@ -0,0 +1,52 @@
+{-# OPTIONS_GHC -Wno-missing-signatures #-}
+{-# OPTIONS_GHC -Wno-incomplete-uni-patterns #-}
+module Golden.Splice where
+
+import Data.Either (Either(..))
+import Data.Function (($))
+import Data.Functor ((<$>))
+import Data.Int (Int)
+import Data.List ((++))
+import Data.String (String, IsString(..))
+import Data.Text (Text)
+import Symantic.Parser (ParsingError, optimizeMachine, generateCode)
+import System.FilePath (dropExtensions, takeBaseName, (</>), (<.>))
+import System.IO (IO)
+import Test.Tasty
+import Test.Tasty.Golden (goldenVsStringDiff)
+import Text.Show (Show(..))
+import qualified Data.List as List
+import qualified Language.Haskell.TH as TH
+import qualified Language.Haskell.TH.HideName as TH
+import qualified System.Process as Process
+
+import Golden.Utils
+import qualified Grammar
+import Symantic.Parser.Grammar (optimizeGrammar)
+
+goldens :: TestTree
+goldens = testGroup "Splice"
+  [ let spliceFile = getGoldenDir $ "Splice/"</>"G"++show gNum<.>"expected"<.>"txt" in
+    goldenVsStringDiff (takeBaseName (dropExtensions spliceFile)) goldenDiff spliceFile $ do
+      tExp <- splice
+      fromString <$> Process.readProcess "ormolu"
+        [ "-o", "-XBangPatterns"
+        , "-o", "-XMagicHash"
+        , "-o", "-XTypeApplications"
+        , "-o", "-XUnboxedTuples"
+        ]
+        (show (TH.ppr (TH.hideName (TH.unType tExp))))
+  | (gNum, splice) <- List.zip [1::Int ..] splices
+  ]
+
+splices :: [IO (TH.TExp (Text -> Either (ParsingError Text) String))]
+splices = (<$> Grammar.grammars) $ \g -> TH.runQ $ do
+  mach <- TH.runIO $ do
+    resetTHNameCounter
+    optimizeMachine $ optimizeGrammar g
+  TH.examineCode $ generateCode mach
+
+[ s1,s2,s3,s4,s5,s6,s7,s8,s9
+ ,s10,s11,s12,s13,s14,s15,s16,s17,s18,s19
+ ,s20
+ ] = splices
diff --git a/tests/Golden/Splice/G1.expected.txt b/tests/Golden/Splice/G1.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Splice/G1.expected.txt
@@ -0,0 +1,177 @@
+\(input :: inp) ->
+  let !(#
+         init,
+         readMore,
+         readNext
+         #) =
+          let _ = "cursorOf"
+           in let next
+                    ( t@( Data.Text.Internal.Text
+                            arr
+                            off
+                            unconsumed
+                          )
+                      ) =
+                      let !( Data.Text.Unsafe.Iter
+                               c
+                               d
+                             ) = Data.Text.Unsafe.iter t 0
+                       in (#
+                            c,
+                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
+                          #)
+                  more
+                    ( Data.Text.Internal.Text
+                        _
+                        _
+                        unconsumed
+                      ) = unconsumed GHC.Classes.> 0
+               in (# input, more, next #)
+      finalRet = \_farInp _farExp v _inp -> Symantic.Parser.Machine.Generate.returnST GHC.Base.$ Data.Either.Right v
+      finalRaise ::
+        forall st b.
+        Symantic.Parser.Machine.Generate.OnException
+          st
+          inp
+          b = \(!exn) _failInp (!farInp) (!farExp) ->
+          Symantic.Parser.Machine.Generate.returnST GHC.Base.$
+            Data.Either.Left
+              Symantic.Parser.Machine.Generate.ParsingError
+                { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
+                  Symantic.Parser.Machine.Generate.parsingErrorException = exn,
+                  Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
+                    if readMore farInp
+                      then
+                        GHC.Maybe.Just
+                          ( let (#
+                                  c,
+                                  _
+                                  #) = readNext farInp
+                             in c
+                          )
+                      else GHC.Maybe.Nothing,
+                  Symantic.Parser.Machine.Generate.parsingErrorExpecting =
+                    let ( minHoriz,
+                          res
+                          ) =
+                            Data.Set.Internal.foldr
+                              ( \f
+                                 ( minH,
+                                   acc
+                                   ) -> case Symantic.Parser.Grammar.Combinators.unSomeFailure f of
+                                    GHC.Maybe.Just (Symantic.Parser.Grammar.Combinators.FailureHorizon h :: Symantic.Parser.Grammar.Combinators.Failure (Symantic.Parser.Grammar.Combinators.CombSatisfiable (Symantic.Parser.Machine.Input.InputToken inp)))
+                                      | GHC.Maybe.Just old <- minH ->
+                                        ( GHC.Maybe.Just (GHC.Classes.min old h),
+                                          acc
+                                        )
+                                      | GHC.Base.otherwise ->
+                                        ( GHC.Maybe.Just h,
+                                          acc
+                                        )
+                                    _ ->
+                                      ( minH,
+                                        f GHC.Types.: acc
+                                      )
+                              )
+                              ( GHC.Maybe.Nothing,
+                                GHC.Types . []
+                              )
+                              farExp
+                     in Data.Set.Internal.fromList GHC.Base.$
+                          ( case minHoriz of
+                              GHC.Maybe.Just h -> Symantic.Parser.Grammar.Combinators.SomeFailure (Symantic.Parser.Grammar.Combinators.FailureHorizon @(Symantic.Parser.Machine.Input.InputToken inp) h) GHC.Types.: res
+                              GHC.Maybe.Nothing -> res
+                          )
+                }
+   in GHC.ST.runST
+        ( let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
+           in let inp = init
+               in let readFail = finalRaise
+                   in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=1"
+                       in if readMore inp
+                            then
+                              let
+                               in let _ = "pushValue"
+                                   in let _ = "comment: satisfy ((GHC.Classes.==) 'a')"
+                                       in let _ = "checkHorizon.oldCheck: checkedHorizon=1"
+                                           in let _ = "checkToken"
+                                               in let !(#
+                                                         c,
+                                                         cs
+                                                         #) = readNext inp
+                                                   in if (GHC.Classes.==) 'a' c
+                                                        then
+                                                          let _ = "lift2Value checkedHorizon=0"
+                                                           in let _ = "resume"
+                                                               in finalRet
+                                                                    init
+                                                                    Data.Set.Internal.empty
+                                                                    ( let _ = "resume.genCode"
+                                                                       in GHC.Show.show 'a'
+                                                                    )
+                                                                    cs
+                                                        else
+                                                          let _ = "checkToken.fail"
+                                                           in let failExp =
+                                                                    Data.Set.Internal.Bin
+                                                                      1
+                                                                      ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                          ( case inputToken of
+                                                                              (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
+                                                                          )
+                                                                      )
+                                                                      Data.Set.Internal.Tip
+                                                                      Data.Set.Internal.Tip
+                                                               in let (#
+                                                                        farInp,
+                                                                        farExp
+                                                                        #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                          GHC.Types.LT ->
+                                                                            (#
+                                                                              inp,
+                                                                              failExp
+                                                                            #)
+                                                                          GHC.Types.EQ ->
+                                                                            (#
+                                                                              init,
+                                                                              failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                            #)
+                                                                          GHC.Types.GT ->
+                                                                            (#
+                                                                              init,
+                                                                              Data.Set.Internal.empty
+                                                                            #)
+                                                                   in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                            else
+                              let _ = "checkHorizon.newCheck.fail"
+                               in let failExp =
+                                        Data.Set.Internal.Bin
+                                          1
+                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                              ( case inputToken of
+                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
+                                              )
+                                          )
+                                          Data.Set.Internal.Tip
+                                          Data.Set.Internal.Tip
+                                   in let (#
+                                            farInp,
+                                            farExp
+                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                              GHC.Types.LT ->
+                                                (#
+                                                  inp,
+                                                  failExp
+                                                #)
+                                              GHC.Types.EQ ->
+                                                (#
+                                                  init,
+                                                  failExp GHC.Base.<> Data.Set.Internal.empty
+                                                #)
+                                              GHC.Types.GT ->
+                                                (#
+                                                  init,
+                                                  Data.Set.Internal.empty
+                                                #)
+                                       in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+        )
diff --git a/tests/Golden/Splice/G10.expected.txt b/tests/Golden/Splice/G10.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Splice/G10.expected.txt
@@ -0,0 +1,301 @@
+\(input :: inp) ->
+  let !(#
+         init,
+         readMore,
+         readNext
+         #) =
+          let _ = "cursorOf"
+           in let next
+                    ( t@( Data.Text.Internal.Text
+                            arr
+                            off
+                            unconsumed
+                          )
+                      ) =
+                      let !( Data.Text.Unsafe.Iter
+                               c
+                               d
+                             ) = Data.Text.Unsafe.iter t 0
+                       in (#
+                            c,
+                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
+                          #)
+                  more
+                    ( Data.Text.Internal.Text
+                        _
+                        _
+                        unconsumed
+                      ) = unconsumed GHC.Classes.> 0
+               in (# input, more, next #)
+      finalRet = \_farInp _farExp v _inp -> Symantic.Parser.Machine.Generate.returnST GHC.Base.$ Data.Either.Right v
+      finalRaise ::
+        forall st b.
+        Symantic.Parser.Machine.Generate.OnException
+          st
+          inp
+          b = \(!exn) _failInp (!farInp) (!farExp) ->
+          Symantic.Parser.Machine.Generate.returnST GHC.Base.$
+            Data.Either.Left
+              Symantic.Parser.Machine.Generate.ParsingError
+                { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
+                  Symantic.Parser.Machine.Generate.parsingErrorException = exn,
+                  Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
+                    if readMore farInp
+                      then
+                        GHC.Maybe.Just
+                          ( let (#
+                                  c,
+                                  _
+                                  #) = readNext farInp
+                             in c
+                          )
+                      else GHC.Maybe.Nothing,
+                  Symantic.Parser.Machine.Generate.parsingErrorExpecting =
+                    let ( minHoriz,
+                          res
+                          ) =
+                            Data.Set.Internal.foldr
+                              ( \f
+                                 ( minH,
+                                   acc
+                                   ) -> case Symantic.Parser.Grammar.Combinators.unSomeFailure f of
+                                    GHC.Maybe.Just (Symantic.Parser.Grammar.Combinators.FailureHorizon h :: Symantic.Parser.Grammar.Combinators.Failure (Symantic.Parser.Grammar.Combinators.CombSatisfiable (Symantic.Parser.Machine.Input.InputToken inp)))
+                                      | GHC.Maybe.Just old <- minH ->
+                                        ( GHC.Maybe.Just (GHC.Classes.min old h),
+                                          acc
+                                        )
+                                      | GHC.Base.otherwise ->
+                                        ( GHC.Maybe.Just h,
+                                          acc
+                                        )
+                                    _ ->
+                                      ( minH,
+                                        f GHC.Types.: acc
+                                      )
+                              )
+                              ( GHC.Maybe.Nothing,
+                                GHC.Types . []
+                              )
+                              farExp
+                     in Data.Set.Internal.fromList GHC.Base.$
+                          ( case minHoriz of
+                              GHC.Maybe.Just h -> Symantic.Parser.Grammar.Combinators.SomeFailure (Symantic.Parser.Grammar.Combinators.FailureHorizon @(Symantic.Parser.Machine.Input.InputToken inp) h) GHC.Types.: res
+                              GHC.Maybe.Nothing -> res
+                          )
+                }
+   in GHC.ST.runST
+        ( let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
+           in let inp = init
+               in let readFail = finalRaise
+                   in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=1"
+                       in if readMore inp
+                            then
+                              let
+                               in let _ = "pushValue"
+                                   in let join = \farInp farExp v (!inp) ->
+                                            let _ = "lift2Value checkedHorizon=0"
+                                             in let _ = "resume"
+                                                 in finalRet
+                                                      farInp
+                                                      farExp
+                                                      ( let _ = "resume.genCode"
+                                                         in GHC.Show.show v
+                                                      )
+                                                      inp
+                                       in let _ = "catch ExceptionFailure checkedHorizon=1"
+                                           in let onException =
+                                                    let _ = "onException"
+                                                     in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                          let _ = "comment: raiseAgainIfConsumed"
+                                                           in let _ = "saveInput checkedHorizon=0"
+                                                               in let _ = "lift2Value checkedHorizon=0"
+                                                                   in if ( \( Data.Text.Internal.Text
+                                                                                _
+                                                                                i
+                                                                                _
+                                                                              )
+                                                                            ( Data.Text.Internal.Text
+                                                                                _
+                                                                                j
+                                                                                _
+                                                                              ) -> i GHC.Classes.== j
+                                                                         )
+                                                                        inp
+                                                                        failInp
+                                                                        then
+                                                                          let _ = "choicesBranch checkedHorizon=0"
+                                                                           in let _ = "pushValue"
+                                                                               in let _ = "comment: satisfy ((GHC.Classes.==) 'b')"
+                                                                                   in let inp = failInp
+                                                                                       in let readFail = finalRaise
+                                                                                           in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=1"
+                                                                                               in if readMore inp
+                                                                                                    then
+                                                                                                      let _ = "checkToken"
+                                                                                                       in let !(#
+                                                                                                                 c,
+                                                                                                                 cs
+                                                                                                                 #) = readNext inp
+                                                                                                           in if (GHC.Classes.==) 'b' c
+                                                                                                                then
+                                                                                                                  let _ = "lift2Value checkedHorizon=1"
+                                                                                                                   in let _ = "resume"
+                                                                                                                       in join
+                                                                                                                            farInp
+                                                                                                                            farExp
+                                                                                                                            ( let _ = "resume.genCode"
+                                                                                                                               in 'b'
+                                                                                                                            )
+                                                                                                                            cs
+                                                                                                                else
+                                                                                                                  let _ = "checkToken.fail"
+                                                                                                                   in let failExp =
+                                                                                                                            Data.Set.Internal.Bin
+                                                                                                                              1
+                                                                                                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                  ( case inputToken of
+                                                                                                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'b'
+                                                                                                                                  )
+                                                                                                                              )
+                                                                                                                              Data.Set.Internal.Tip
+                                                                                                                              Data.Set.Internal.Tip
+                                                                                                                       in let (#
+                                                                                                                                farInp,
+                                                                                                                                farExp
+                                                                                                                                #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                  GHC.Types.LT ->
+                                                                                                                                    (#
+                                                                                                                                      inp,
+                                                                                                                                      failExp
+                                                                                                                                    #)
+                                                                                                                                  GHC.Types.EQ ->
+                                                                                                                                    (#
+                                                                                                                                      farInp,
+                                                                                                                                      failExp GHC.Base.<> farExp
+                                                                                                                                    #)
+                                                                                                                                  GHC.Types.GT ->
+                                                                                                                                    (#
+                                                                                                                                      farInp,
+                                                                                                                                      farExp
+                                                                                                                                    #)
+                                                                                                                           in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                    else
+                                                                                                      let _ = "checkHorizon.newCheck.fail"
+                                                                                                       in let failExp =
+                                                                                                                Data.Set.Internal.Bin
+                                                                                                                  1
+                                                                                                                  ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                      ( case inputToken of
+                                                                                                                          (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
+                                                                                                                      )
+                                                                                                                  )
+                                                                                                                  Data.Set.Internal.Tip
+                                                                                                                  Data.Set.Internal.Tip
+                                                                                                           in let (#
+                                                                                                                    farInp,
+                                                                                                                    farExp
+                                                                                                                    #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                      GHC.Types.LT ->
+                                                                                                                        (#
+                                                                                                                          inp,
+                                                                                                                          failExp
+                                                                                                                        #)
+                                                                                                                      GHC.Types.EQ ->
+                                                                                                                        (#
+                                                                                                                          farInp,
+                                                                                                                          failExp GHC.Base.<> farExp
+                                                                                                                        #)
+                                                                                                                      GHC.Types.GT ->
+                                                                                                                        (#
+                                                                                                                          farInp,
+                                                                                                                          farExp
+                                                                                                                        #)
+                                                                                                               in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                        else
+                                                                          let _ = "choicesBranch.else"
+                                                                           in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                               in let _ = "pushValue"
+                                                   in let _ = "comment: satisfy ((GHC.Classes.==) 'a')"
+                                                       in let _ = "checkHorizon.oldCheck: checkedHorizon=1"
+                                                           in let _ = "checkToken"
+                                                               in let !(#
+                                                                         c,
+                                                                         cs
+                                                                         #) = readNext inp
+                                                                   in if (GHC.Classes.==) 'a' c
+                                                                        then
+                                                                          let _ = "lift2Value checkedHorizon=0"
+                                                                           in let _ = "commit"
+                                                                               in let _ = "resume"
+                                                                                   in join
+                                                                                        init
+                                                                                        Data.Set.Internal.empty
+                                                                                        ( let _ = "resume.genCode"
+                                                                                           in 'a'
+                                                                                        )
+                                                                                        cs
+                                                                        else
+                                                                          let _ = "checkToken.fail"
+                                                                           in let failExp =
+                                                                                    Data.Set.Internal.Bin
+                                                                                      1
+                                                                                      ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                          ( case inputToken of
+                                                                                              (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
+                                                                                          )
+                                                                                      )
+                                                                                      Data.Set.Internal.Tip
+                                                                                      Data.Set.Internal.Tip
+                                                                               in let (#
+                                                                                        farInp,
+                                                                                        farExp
+                                                                                        #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                          GHC.Types.LT ->
+                                                                                            (#
+                                                                                              inp,
+                                                                                              failExp
+                                                                                            #)
+                                                                                          GHC.Types.EQ ->
+                                                                                            (#
+                                                                                              init,
+                                                                                              failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                            #)
+                                                                                          GHC.Types.GT ->
+                                                                                            (#
+                                                                                              init,
+                                                                                              Data.Set.Internal.empty
+                                                                                            #)
+                                                                                   in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                            else
+                              let _ = "checkHorizon.newCheck.fail"
+                               in let failExp =
+                                        Data.Set.Internal.Bin
+                                          1
+                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                              ( case inputToken of
+                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
+                                              )
+                                          )
+                                          Data.Set.Internal.Tip
+                                          Data.Set.Internal.Tip
+                                   in let (#
+                                            farInp,
+                                            farExp
+                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                              GHC.Types.LT ->
+                                                (#
+                                                  inp,
+                                                  failExp
+                                                #)
+                                              GHC.Types.EQ ->
+                                                (#
+                                                  init,
+                                                  failExp GHC.Base.<> Data.Set.Internal.empty
+                                                #)
+                                              GHC.Types.GT ->
+                                                (#
+                                                  init,
+                                                  Data.Set.Internal.empty
+                                                #)
+                                       in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+        )
diff --git a/tests/Golden/Splice/G11.expected.txt b/tests/Golden/Splice/G11.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Splice/G11.expected.txt
@@ -0,0 +1,339 @@
+\(input :: inp) ->
+  let !(#
+         init,
+         readMore,
+         readNext
+         #) =
+          let _ = "cursorOf"
+           in let next
+                    ( t@( Data.Text.Internal.Text
+                            arr
+                            off
+                            unconsumed
+                          )
+                      ) =
+                      let !( Data.Text.Unsafe.Iter
+                               c
+                               d
+                             ) = Data.Text.Unsafe.iter t 0
+                       in (#
+                            c,
+                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
+                          #)
+                  more
+                    ( Data.Text.Internal.Text
+                        _
+                        _
+                        unconsumed
+                      ) = unconsumed GHC.Classes.> 0
+               in (# input, more, next #)
+      finalRet = \_farInp _farExp v _inp -> Symantic.Parser.Machine.Generate.returnST GHC.Base.$ Data.Either.Right v
+      finalRaise ::
+        forall st b.
+        Symantic.Parser.Machine.Generate.OnException
+          st
+          inp
+          b = \(!exn) _failInp (!farInp) (!farExp) ->
+          Symantic.Parser.Machine.Generate.returnST GHC.Base.$
+            Data.Either.Left
+              Symantic.Parser.Machine.Generate.ParsingError
+                { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
+                  Symantic.Parser.Machine.Generate.parsingErrorException = exn,
+                  Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
+                    if readMore farInp
+                      then
+                        GHC.Maybe.Just
+                          ( let (#
+                                  c,
+                                  _
+                                  #) = readNext farInp
+                             in c
+                          )
+                      else GHC.Maybe.Nothing,
+                  Symantic.Parser.Machine.Generate.parsingErrorExpecting =
+                    let ( minHoriz,
+                          res
+                          ) =
+                            Data.Set.Internal.foldr
+                              ( \f
+                                 ( minH,
+                                   acc
+                                   ) -> case Symantic.Parser.Grammar.Combinators.unSomeFailure f of
+                                    GHC.Maybe.Just (Symantic.Parser.Grammar.Combinators.FailureHorizon h :: Symantic.Parser.Grammar.Combinators.Failure (Symantic.Parser.Grammar.Combinators.CombSatisfiable (Symantic.Parser.Machine.Input.InputToken inp)))
+                                      | GHC.Maybe.Just old <- minH ->
+                                        ( GHC.Maybe.Just (GHC.Classes.min old h),
+                                          acc
+                                        )
+                                      | GHC.Base.otherwise ->
+                                        ( GHC.Maybe.Just h,
+                                          acc
+                                        )
+                                    _ ->
+                                      ( minH,
+                                        f GHC.Types.: acc
+                                      )
+                              )
+                              ( GHC.Maybe.Nothing,
+                                GHC.Types . []
+                              )
+                              farExp
+                     in Data.Set.Internal.fromList GHC.Base.$
+                          ( case minHoriz of
+                              GHC.Maybe.Just h -> Symantic.Parser.Grammar.Combinators.SomeFailure (Symantic.Parser.Grammar.Combinators.FailureHorizon @(Symantic.Parser.Machine.Input.InputToken inp) h) GHC.Types.: res
+                              GHC.Maybe.Nothing -> res
+                          )
+                }
+   in GHC.ST.runST
+        ( let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
+           in let inp = init
+               in let readFail = finalRaise
+                   in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=1"
+                       in if readMore inp
+                            then
+                              let
+                               in let _ = "pushValue"
+                                   in let _ = "pushValue"
+                                       in do
+                                            let dupv = \x -> x
+                                            reg <- GHC.STRef.newSTRef dupv
+                                            let _ = "iter"
+                                             in let onException loopInput =
+                                                      let _ = "onException"
+                                                       in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                            let _ = "comment: raiseAgainIfConsumed"
+                                                             in let _ = "saveInput checkedHorizon=0"
+                                                                 in let _ = "lift2Value checkedHorizon=0"
+                                                                     in if ( \( Data.Text.Internal.Text
+                                                                                  _
+                                                                                  i
+                                                                                  _
+                                                                                )
+                                                                              ( Data.Text.Internal.Text
+                                                                                  _
+                                                                                  j
+                                                                                  _
+                                                                                ) -> i GHC.Classes.== j
+                                                                           )
+                                                                          loopInput
+                                                                          failInp
+                                                                          then
+                                                                            let _ = "choicesBranch checkedHorizon=0"
+                                                                             in do
+                                                                                  sr <- GHC.STRef.readSTRef reg
+                                                                                  let _ = "pushValue"
+                                                                                   in let _ = "lift2Value checkedHorizon=0"
+                                                                                       in let _ = "lift2Value checkedHorizon=0"
+                                                                                           in let _ = "comment: satisfy ((GHC.Classes.==) 'b')"
+                                                                                               in let inp = failInp
+                                                                                                   in let readFail = finalRaise
+                                                                                                       in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=1"
+                                                                                                           in if readMore inp
+                                                                                                                then
+                                                                                                                  let _ = "checkToken"
+                                                                                                                   in let !(#
+                                                                                                                             c,
+                                                                                                                             cs
+                                                                                                                             #) = readNext inp
+                                                                                                                       in if (GHC.Classes.==) 'b' c
+                                                                                                                            then
+                                                                                                                              let _ = "lift2Value checkedHorizon=1"
+                                                                                                                               in let _ = "resume"
+                                                                                                                                   in finalRet
+                                                                                                                                        farInp
+                                                                                                                                        farExp
+                                                                                                                                        ( let _ = "resume.genCode"
+                                                                                                                                           in GHC.Show.show (sr GHC.Types . [])
+                                                                                                                                        )
+                                                                                                                                        cs
+                                                                                                                            else
+                                                                                                                              let _ = "checkToken.fail"
+                                                                                                                               in let failExp =
+                                                                                                                                        Data.Set.Internal.Bin
+                                                                                                                                          1
+                                                                                                                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                              ( case inputToken of
+                                                                                                                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'b'
+                                                                                                                                              )
+                                                                                                                                          )
+                                                                                                                                          Data.Set.Internal.Tip
+                                                                                                                                          Data.Set.Internal.Tip
+                                                                                                                                   in let (#
+                                                                                                                                            farInp,
+                                                                                                                                            farExp
+                                                                                                                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                              GHC.Types.LT ->
+                                                                                                                                                (#
+                                                                                                                                                  inp,
+                                                                                                                                                  failExp
+                                                                                                                                                #)
+                                                                                                                                              GHC.Types.EQ ->
+                                                                                                                                                (#
+                                                                                                                                                  farInp,
+                                                                                                                                                  failExp GHC.Base.<> farExp
+                                                                                                                                                #)
+                                                                                                                                              GHC.Types.GT ->
+                                                                                                                                                (#
+                                                                                                                                                  farInp,
+                                                                                                                                                  farExp
+                                                                                                                                                #)
+                                                                                                                                       in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                                else
+                                                                                                                  let _ = "checkHorizon.newCheck.fail"
+                                                                                                                   in let failExp =
+                                                                                                                            Data.Set.Internal.Bin
+                                                                                                                              1
+                                                                                                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                  ( case inputToken of
+                                                                                                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
+                                                                                                                                  )
+                                                                                                                              )
+                                                                                                                              Data.Set.Internal.Tip
+                                                                                                                              Data.Set.Internal.Tip
+                                                                                                                       in let (#
+                                                                                                                                farInp,
+                                                                                                                                farExp
+                                                                                                                                #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                  GHC.Types.LT ->
+                                                                                                                                    (#
+                                                                                                                                      inp,
+                                                                                                                                      failExp
+                                                                                                                                    #)
+                                                                                                                                  GHC.Types.EQ ->
+                                                                                                                                    (#
+                                                                                                                                      farInp,
+                                                                                                                                      failExp GHC.Base.<> farExp
+                                                                                                                                    #)
+                                                                                                                                  GHC.Types.GT ->
+                                                                                                                                    (#
+                                                                                                                                      farInp,
+                                                                                                                                      farExp
+                                                                                                                                    #)
+                                                                                                                           in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                          else
+                                                                            let _ = "choicesBranch.else"
+                                                                             in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                    loop = \_callerOnReturn callerInput callerOnExceptionStackByLabel ->
+                                                      let _ = "pushValue"
+                                                       in let _ = "comment: satisfy ((GHC.Classes.==) 'a')"
+                                                           in let inp = callerInput
+                                                               in let readFail = onException callerInput
+                                                                   in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=1"
+                                                                       in if readMore inp
+                                                                            then
+                                                                              let _ = "checkToken"
+                                                                               in let !(#
+                                                                                         c,
+                                                                                         cs
+                                                                                         #) = readNext inp
+                                                                                   in if (GHC.Classes.==) 'a' c
+                                                                                        then
+                                                                                          let _ = "lift2Value checkedHorizon=1"
+                                                                                           in let _ = "pushValue"
+                                                                                               in let _ = "lift2Value checkedHorizon=1"
+                                                                                                   in do
+                                                                                                        sr <- GHC.STRef.readSTRef reg
+                                                                                                        let _ = "lift2Value checkedHorizon=1"
+                                                                                                         in do
+                                                                                                              let dupv = \x -> sr ((GHC.Types.:) 'a' x)
+                                                                                                              GHC.STRef.writeSTRef reg dupv
+                                                                                                              let _ = "jump"
+                                                                                                               in loop (GHC.Err.error "invalid onReturn") cs (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                        else
+                                                                                          let _ = "checkToken.fail"
+                                                                                           in let failExp =
+                                                                                                    Data.Set.Internal.Bin
+                                                                                                      1
+                                                                                                      ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                          ( case inputToken of
+                                                                                                              (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
+                                                                                                          )
+                                                                                                      )
+                                                                                                      Data.Set.Internal.Tip
+                                                                                                      Data.Set.Internal.Tip
+                                                                                               in let (#
+                                                                                                        farInp,
+                                                                                                        farExp
+                                                                                                        #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                                          GHC.Types.LT ->
+                                                                                                            (#
+                                                                                                              inp,
+                                                                                                              failExp
+                                                                                                            #)
+                                                                                                          GHC.Types.EQ ->
+                                                                                                            (#
+                                                                                                              init,
+                                                                                                              failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                                            #)
+                                                                                                          GHC.Types.GT ->
+                                                                                                            (#
+                                                                                                              init,
+                                                                                                              Data.Set.Internal.empty
+                                                                                                            #)
+                                                                                                   in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                            else
+                                                                              let _ = "checkHorizon.newCheck.fail"
+                                                                               in let failExp =
+                                                                                        Data.Set.Internal.Bin
+                                                                                          1
+                                                                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                              ( case inputToken of
+                                                                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
+                                                                                              )
+                                                                                          )
+                                                                                          Data.Set.Internal.Tip
+                                                                                          Data.Set.Internal.Tip
+                                                                                   in let (#
+                                                                                            farInp,
+                                                                                            farExp
+                                                                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                              GHC.Types.LT ->
+                                                                                                (#
+                                                                                                  inp,
+                                                                                                  failExp
+                                                                                                #)
+                                                                                              GHC.Types.EQ ->
+                                                                                                (#
+                                                                                                  init,
+                                                                                                  failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                                #)
+                                                                                              GHC.Types.GT ->
+                                                                                                (#
+                                                                                                  init,
+                                                                                                  Data.Set.Internal.empty
+                                                                                                #)
+                                                                                       in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                 in let _ = "jump"
+                                                     in loop finalRet inp Data.Map.Internal.Tip
+                            else
+                              let _ = "checkHorizon.newCheck.fail"
+                               in let failExp =
+                                        Data.Set.Internal.Bin
+                                          1
+                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                              ( case inputToken of
+                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
+                                              )
+                                          )
+                                          Data.Set.Internal.Tip
+                                          Data.Set.Internal.Tip
+                                   in let (#
+                                            farInp,
+                                            farExp
+                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                              GHC.Types.LT ->
+                                                (#
+                                                  inp,
+                                                  failExp
+                                                #)
+                                              GHC.Types.EQ ->
+                                                (#
+                                                  init,
+                                                  failExp GHC.Base.<> Data.Set.Internal.empty
+                                                #)
+                                              GHC.Types.GT ->
+                                                (#
+                                                  init,
+                                                  Data.Set.Internal.empty
+                                                #)
+                                       in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+        )
diff --git a/tests/Golden/Splice/G12.expected.txt b/tests/Golden/Splice/G12.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Splice/G12.expected.txt
@@ -0,0 +1,369 @@
+\(input :: inp) ->
+  let !(#
+         init,
+         readMore,
+         readNext
+         #) =
+          let _ = "cursorOf"
+           in let next
+                    ( t@( Data.Text.Internal.Text
+                            arr
+                            off
+                            unconsumed
+                          )
+                      ) =
+                      let !( Data.Text.Unsafe.Iter
+                               c
+                               d
+                             ) = Data.Text.Unsafe.iter t 0
+                       in (#
+                            c,
+                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
+                          #)
+                  more
+                    ( Data.Text.Internal.Text
+                        _
+                        _
+                        unconsumed
+                      ) = unconsumed GHC.Classes.> 0
+               in (# input, more, next #)
+      finalRet = \_farInp _farExp v _inp -> Symantic.Parser.Machine.Generate.returnST GHC.Base.$ Data.Either.Right v
+      finalRaise ::
+        forall st b.
+        Symantic.Parser.Machine.Generate.OnException
+          st
+          inp
+          b = \(!exn) _failInp (!farInp) (!farExp) ->
+          Symantic.Parser.Machine.Generate.returnST GHC.Base.$
+            Data.Either.Left
+              Symantic.Parser.Machine.Generate.ParsingError
+                { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
+                  Symantic.Parser.Machine.Generate.parsingErrorException = exn,
+                  Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
+                    if readMore farInp
+                      then
+                        GHC.Maybe.Just
+                          ( let (#
+                                  c,
+                                  _
+                                  #) = readNext farInp
+                             in c
+                          )
+                      else GHC.Maybe.Nothing,
+                  Symantic.Parser.Machine.Generate.parsingErrorExpecting =
+                    let ( minHoriz,
+                          res
+                          ) =
+                            Data.Set.Internal.foldr
+                              ( \f
+                                 ( minH,
+                                   acc
+                                   ) -> case Symantic.Parser.Grammar.Combinators.unSomeFailure f of
+                                    GHC.Maybe.Just (Symantic.Parser.Grammar.Combinators.FailureHorizon h :: Symantic.Parser.Grammar.Combinators.Failure (Symantic.Parser.Grammar.Combinators.CombSatisfiable (Symantic.Parser.Machine.Input.InputToken inp)))
+                                      | GHC.Maybe.Just old <- minH ->
+                                        ( GHC.Maybe.Just (GHC.Classes.min old h),
+                                          acc
+                                        )
+                                      | GHC.Base.otherwise ->
+                                        ( GHC.Maybe.Just h,
+                                          acc
+                                        )
+                                    _ ->
+                                      ( minH,
+                                        f GHC.Types.: acc
+                                      )
+                              )
+                              ( GHC.Maybe.Nothing,
+                                GHC.Types . []
+                              )
+                              farExp
+                     in Data.Set.Internal.fromList GHC.Base.$
+                          ( case minHoriz of
+                              GHC.Maybe.Just h -> Symantic.Parser.Grammar.Combinators.SomeFailure (Symantic.Parser.Grammar.Combinators.FailureHorizon @(Symantic.Parser.Machine.Input.InputToken inp) h) GHC.Types.: res
+                              GHC.Maybe.Nothing -> res
+                          )
+                }
+   in GHC.ST.runST
+        ( let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
+           in let _ = "checkHorizon.noCheck"
+               in let
+                   in let _ = "pushValue"
+                       in let _ = "pushValue"
+                           in do
+                                let dupv = \x -> x
+                                reg <- GHC.STRef.newSTRef dupv
+                                let _ = "iter"
+                                 in let onException loopInput =
+                                          let _ = "onException"
+                                           in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                let _ = "comment: raiseAgainIfConsumed"
+                                                 in let _ = "saveInput checkedHorizon=0"
+                                                     in let _ = "lift2Value checkedHorizon=0"
+                                                         in if ( \( Data.Text.Internal.Text
+                                                                      _
+                                                                      i
+                                                                      _
+                                                                    )
+                                                                  ( Data.Text.Internal.Text
+                                                                      _
+                                                                      j
+                                                                      _
+                                                                    ) -> i GHC.Classes.== j
+                                                               )
+                                                              loopInput
+                                                              failInp
+                                                              then
+                                                                let _ = "choicesBranch checkedHorizon=0"
+                                                                 in do
+                                                                      sr <- GHC.STRef.readSTRef reg
+                                                                      let _ = "pushValue"
+                                                                       in let _ = "lift2Value checkedHorizon=0"
+                                                                           in let _ = "lift2Value checkedHorizon=0"
+                                                                               in let join = \farInp farExp v (!inp) ->
+                                                                                        let _ = "lift2Value checkedHorizon=0"
+                                                                                         in let _ = "resume"
+                                                                                             in finalRet
+                                                                                                  farInp
+                                                                                                  farExp
+                                                                                                  ( let _ = "resume.genCode"
+                                                                                                     in GHC.Show.show (sr GHC.Types . [])
+                                                                                                  )
+                                                                                                  inp
+                                                                                   in let _ = "catch ExceptionFailure checkedHorizon=0"
+                                                                                       in let onException =
+                                                                                                let _ = "onException"
+                                                                                                 in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                                      let _ = "comment: raiseAgainIfConsumed"
+                                                                                                       in let _ = "saveInput checkedHorizon=0"
+                                                                                                           in let _ = "lift2Value checkedHorizon=0"
+                                                                                                               in if ( \( Data.Text.Internal.Text
+                                                                                                                            _
+                                                                                                                            i
+                                                                                                                            _
+                                                                                                                          )
+                                                                                                                        ( Data.Text.Internal.Text
+                                                                                                                            _
+                                                                                                                            j
+                                                                                                                            _
+                                                                                                                          ) -> i GHC.Classes.== j
+                                                                                                                     )
+                                                                                                                    failInp
+                                                                                                                    failInp
+                                                                                                                    then
+                                                                                                                      let _ = "choicesBranch checkedHorizon=0"
+                                                                                                                       in let _ = "comment: eof.fail"
+                                                                                                                           in let failExp = Data.Set.Internal.Bin 1 (Symantic.Parser.Grammar.Combinators.SomeFailure Symantic.Parser.Grammar.Combinators.FailureEnd) Data.Set.Internal.Tip Data.Set.Internal.Tip
+                                                                                                                               in let (#
+                                                                                                                                        farInp,
+                                                                                                                                        farExp
+                                                                                                                                        #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp failInp of
+                                                                                                                                          GHC.Types.LT ->
+                                                                                                                                            (#
+                                                                                                                                              failInp,
+                                                                                                                                              failExp
+                                                                                                                                            #)
+                                                                                                                                          GHC.Types.EQ ->
+                                                                                                                                            (#
+                                                                                                                                              farInp,
+                                                                                                                                              failExp GHC.Base.<> farExp
+                                                                                                                                            #)
+                                                                                                                                          GHC.Types.GT ->
+                                                                                                                                            (#
+                                                                                                                                              farInp,
+                                                                                                                                              farExp
+                                                                                                                                            #)
+                                                                                                                                   in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                                                    else
+                                                                                                                      let _ = "choicesBranch.else"
+                                                                                                                       in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                           in let _ = "comment: negLook"
+                                                                                               in let _ = "catch ExceptionFailure checkedHorizon=0"
+                                                                                                   in let onException =
+                                                                                                            let _ = "onException"
+                                                                                                             in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                                                  let _ = "comment: negLook.reset"
+                                                                                                                   in let _ = "loadInput checkedHorizon=0"
+                                                                                                                       in let _ = "checkHorizon.noCheck"
+                                                                                                                           in let _ = "pushValue"
+                                                                                                                               in let _ = "commit"
+                                                                                                                                   in let _ = "resume"
+                                                                                                                                       in join
+                                                                                                                                            farInp
+                                                                                                                                            farExp
+                                                                                                                                            ( let _ = "resume.genCode"
+                                                                                                                                               in GHC.Tuple . ()
+                                                                                                                                            )
+                                                                                                                                            failInp
+                                                                                                       in let _ = "comment: negLook.ahead"
+                                                                                                           in let _ = "saveInput checkedHorizon=0"
+                                                                                                               in let _ = "comment: satisfy ((\\x_0 -> \\x_1 -> x_0) GHC.Types.True)"
+                                                                                                                   in let inp = failInp
+                                                                                                                       in let readFail = onException
+                                                                                                                           in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=1"
+                                                                                                                               in if readMore inp
+                                                                                                                                    then
+                                                                                                                                      let _ = "checkToken"
+                                                                                                                                       in let !(#
+                                                                                                                                                 c,
+                                                                                                                                                 cs
+                                                                                                                                                 #) = readNext inp
+                                                                                                                                           in let _ = "popValue"
+                                                                                                                                               in let _ = "commit"
+                                                                                                                                                   in let _ = "loadInput checkedHorizon=0"
+                                                                                                                                                       in let _ = "checkHorizon.noCheck"
+                                                                                                                                                           in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                                                                    else
+                                                                                                                                      let _ = "checkHorizon.newCheck.fail"
+                                                                                                                                       in let failExp =
+                                                                                                                                                Data.Set.Internal.Bin
+                                                                                                                                                  1
+                                                                                                                                                  ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                      ( case inputToken of
+                                                                                                                                                          (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
+                                                                                                                                                      )
+                                                                                                                                                  )
+                                                                                                                                                  Data.Set.Internal.Tip
+                                                                                                                                                  Data.Set.Internal.Tip
+                                                                                                                                           in let (#
+                                                                                                                                                    farInp,
+                                                                                                                                                    farExp
+                                                                                                                                                    #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                                      GHC.Types.LT ->
+                                                                                                                                                        (#
+                                                                                                                                                          inp,
+                                                                                                                                                          failExp
+                                                                                                                                                        #)
+                                                                                                                                                      GHC.Types.EQ ->
+                                                                                                                                                        (#
+                                                                                                                                                          farInp,
+                                                                                                                                                          failExp GHC.Base.<> farExp
+                                                                                                                                                        #)
+                                                                                                                                                      GHC.Types.GT ->
+                                                                                                                                                        (#
+                                                                                                                                                          farInp,
+                                                                                                                                                          farExp
+                                                                                                                                                        #)
+                                                                                                                                               in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                              else
+                                                                let _ = "choicesBranch.else"
+                                                                 in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                        loop = \_callerOnReturn callerInput callerOnExceptionStackByLabel ->
+                                          let _ = "pushValue"
+                                           in let _ = "comment: satisfy (\\t_0 -> ('a' GHC.Classes.== t_0) GHC.Classes.|| (('b' GHC.Classes.== t_0) GHC.Classes.|| (('c' GHC.Classes.== t_0) GHC.Classes.|| (('d' GHC.Classes.== t_0) GHC.Classes.|| GHC.Types.False))))"
+                                               in let inp = callerInput
+                                                   in let readFail = onException callerInput
+                                                       in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=1"
+                                                           in if readMore inp
+                                                                then
+                                                                  let _ = "checkToken"
+                                                                   in let !(#
+                                                                             c,
+                                                                             cs
+                                                                             #) = readNext inp
+                                                                       in if (\t -> ('a' GHC.Classes.== t) GHC.Classes.|| (('b' GHC.Classes.== t) GHC.Classes.|| (('c' GHC.Classes.== t) GHC.Classes.|| (('d' GHC.Classes.== t) GHC.Classes.|| GHC.Types.False)))) c
+                                                                            then
+                                                                              let _ = "lift2Value checkedHorizon=1"
+                                                                               in let _ = "pushValue"
+                                                                                   in let _ = "lift2Value checkedHorizon=1"
+                                                                                       in do
+                                                                                            sr <- GHC.STRef.readSTRef reg
+                                                                                            let _ = "lift2Value checkedHorizon=1"
+                                                                                             in do
+                                                                                                  let dupv = \x -> sr ((GHC.Types.:) c x)
+                                                                                                  GHC.STRef.writeSTRef reg dupv
+                                                                                                  let _ = "jump"
+                                                                                                   in loop (GHC.Err.error "invalid onReturn") cs (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                            else
+                                                                              let _ = "checkToken.fail"
+                                                                               in let failExp =
+                                                                                        Data.Set.Internal.Bin
+                                                                                          4
+                                                                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                              ( case inputToken of
+                                                                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'b'
+                                                                                              )
+                                                                                          )
+                                                                                          ( Data.Set.Internal.Bin
+                                                                                              1
+                                                                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                  ( case inputToken of
+                                                                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
+                                                                                                  )
+                                                                                              )
+                                                                                              Data.Set.Internal.Tip
+                                                                                              Data.Set.Internal.Tip
+                                                                                          )
+                                                                                          ( Data.Set.Internal.Bin
+                                                                                              2
+                                                                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                  ( case inputToken of
+                                                                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'c'
+                                                                                                  )
+                                                                                              )
+                                                                                              Data.Set.Internal.Tip
+                                                                                              ( Data.Set.Internal.Bin
+                                                                                                  1
+                                                                                                  ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                      ( case inputToken of
+                                                                                                          (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'd'
+                                                                                                      )
+                                                                                                  )
+                                                                                                  Data.Set.Internal.Tip
+                                                                                                  Data.Set.Internal.Tip
+                                                                                              )
+                                                                                          )
+                                                                                   in let (#
+                                                                                            farInp,
+                                                                                            farExp
+                                                                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                              GHC.Types.LT ->
+                                                                                                (#
+                                                                                                  inp,
+                                                                                                  failExp
+                                                                                                #)
+                                                                                              GHC.Types.EQ ->
+                                                                                                (#
+                                                                                                  init,
+                                                                                                  failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                                #)
+                                                                                              GHC.Types.GT ->
+                                                                                                (#
+                                                                                                  init,
+                                                                                                  Data.Set.Internal.empty
+                                                                                                #)
+                                                                                       in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                else
+                                                                  let _ = "checkHorizon.newCheck.fail"
+                                                                   in let failExp =
+                                                                            Data.Set.Internal.Bin
+                                                                              1
+                                                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                  ( case inputToken of
+                                                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
+                                                                                  )
+                                                                              )
+                                                                              Data.Set.Internal.Tip
+                                                                              Data.Set.Internal.Tip
+                                                                       in let (#
+                                                                                farInp,
+                                                                                farExp
+                                                                                #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                  GHC.Types.LT ->
+                                                                                    (#
+                                                                                      inp,
+                                                                                      failExp
+                                                                                    #)
+                                                                                  GHC.Types.EQ ->
+                                                                                    (#
+                                                                                      init,
+                                                                                      failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                    #)
+                                                                                  GHC.Types.GT ->
+                                                                                    (#
+                                                                                      init,
+                                                                                      Data.Set.Internal.empty
+                                                                                    #)
+                                                                           in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                     in let _ = "jump"
+                                         in loop finalRet init Data.Map.Internal.Tip
+        )
diff --git a/tests/Golden/Splice/G13.expected.txt b/tests/Golden/Splice/G13.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Splice/G13.expected.txt
@@ -0,0 +1,603 @@
+\(input :: inp) ->
+  let !(#
+         init,
+         readMore,
+         readNext
+         #) =
+          let _ = "cursorOf"
+           in let next
+                    ( t@( Data.Text.Internal.Text
+                            arr
+                            off
+                            unconsumed
+                          )
+                      ) =
+                      let !( Data.Text.Unsafe.Iter
+                               c
+                               d
+                             ) = Data.Text.Unsafe.iter t 0
+                       in (#
+                            c,
+                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
+                          #)
+                  more
+                    ( Data.Text.Internal.Text
+                        _
+                        _
+                        unconsumed
+                      ) = unconsumed GHC.Classes.> 0
+               in (# input, more, next #)
+      finalRet = \_farInp _farExp v _inp -> Symantic.Parser.Machine.Generate.returnST GHC.Base.$ Data.Either.Right v
+      finalRaise ::
+        forall st b.
+        Symantic.Parser.Machine.Generate.OnException
+          st
+          inp
+          b = \(!exn) _failInp (!farInp) (!farExp) ->
+          Symantic.Parser.Machine.Generate.returnST GHC.Base.$
+            Data.Either.Left
+              Symantic.Parser.Machine.Generate.ParsingError
+                { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
+                  Symantic.Parser.Machine.Generate.parsingErrorException = exn,
+                  Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
+                    if readMore farInp
+                      then
+                        GHC.Maybe.Just
+                          ( let (#
+                                  c,
+                                  _
+                                  #) = readNext farInp
+                             in c
+                          )
+                      else GHC.Maybe.Nothing,
+                  Symantic.Parser.Machine.Generate.parsingErrorExpecting =
+                    let ( minHoriz,
+                          res
+                          ) =
+                            Data.Set.Internal.foldr
+                              ( \f
+                                 ( minH,
+                                   acc
+                                   ) -> case Symantic.Parser.Grammar.Combinators.unSomeFailure f of
+                                    GHC.Maybe.Just (Symantic.Parser.Grammar.Combinators.FailureHorizon h :: Symantic.Parser.Grammar.Combinators.Failure (Symantic.Parser.Grammar.Combinators.CombSatisfiable (Symantic.Parser.Machine.Input.InputToken inp)))
+                                      | GHC.Maybe.Just old <- minH ->
+                                        ( GHC.Maybe.Just (GHC.Classes.min old h),
+                                          acc
+                                        )
+                                      | GHC.Base.otherwise ->
+                                        ( GHC.Maybe.Just h,
+                                          acc
+                                        )
+                                    _ ->
+                                      ( minH,
+                                        f GHC.Types.: acc
+                                      )
+                              )
+                              ( GHC.Maybe.Nothing,
+                                GHC.Types . []
+                              )
+                              farExp
+                     in Data.Set.Internal.fromList GHC.Base.$
+                          ( case minHoriz of
+                              GHC.Maybe.Just h -> Symantic.Parser.Grammar.Combinators.SomeFailure (Symantic.Parser.Grammar.Combinators.FailureHorizon @(Symantic.Parser.Machine.Input.InputToken inp) h) GHC.Types.: res
+                              GHC.Maybe.Nothing -> res
+                          )
+                }
+   in GHC.ST.runST
+        ( let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
+           in let _ = "checkHorizon.noCheck"
+               in let name = \(!callerOnReturn) (!callerInput) (!callerOnExceptionStackByLabel) ->
+                        let _ = "pushValue"
+                         in let _ = "pushValue"
+                             in do
+                                  let dupv = \x -> x
+                                  reg <- GHC.STRef.newSTRef dupv
+                                  let _ = "iter"
+                                   in let onException loopInput =
+                                            let _ = "onException"
+                                             in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                  let _ = "comment: raiseAgainIfConsumed"
+                                                   in let _ = "saveInput checkedHorizon=0"
+                                                       in let _ = "lift2Value checkedHorizon=0"
+                                                           in if ( \( Data.Text.Internal.Text
+                                                                        _
+                                                                        i
+                                                                        _
+                                                                      )
+                                                                    ( Data.Text.Internal.Text
+                                                                        _
+                                                                        j
+                                                                        _
+                                                                      ) -> i GHC.Classes.== j
+                                                                 )
+                                                                loopInput
+                                                                failInp
+                                                                then
+                                                                  let _ = "choicesBranch checkedHorizon=0"
+                                                                   in do
+                                                                        sr <- GHC.STRef.readSTRef reg
+                                                                        let _ = "pushValue"
+                                                                         in let _ = "lift2Value checkedHorizon=0"
+                                                                             in let _ = "lift2Value checkedHorizon=0"
+                                                                                 in let _ = "resume"
+                                                                                     in callerOnReturn
+                                                                                          farInp
+                                                                                          farExp
+                                                                                          ( let _ = "resume.genCode"
+                                                                                             in GHC.Tuple . ()
+                                                                                          )
+                                                                                          failInp
+                                                                else
+                                                                  let _ = "choicesBranch.else"
+                                                                   in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure callerOnExceptionStackByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                          loop = \_callerOnReturn callerInput callerOnExceptionStackByLabel ->
+                                            let _ = "pushValue"
+                                             in let _ = "comment: satisfy (\\c_0 -> GHC.Classes.not (('<' GHC.Classes.== c_0) GHC.Classes.|| (('>' GHC.Classes.== c_0) GHC.Classes.|| (('+' GHC.Classes.== c_0) GHC.Classes.|| (('-' GHC.Classes.== c_0) GHC.Classes.|| ((',' GHC.Classes.== c_0) GHC.Classes.|| (('.' GHC.Classes.== c_0) GHC.Classes.|| (('[' GHC.Classes.== c_0) GHC.Classes.|| ((']' GHC.Classes.== c_0) GHC.Classes.|| GHC.Types.False)))))))))"
+                                                 in let inp = callerInput
+                                                     in let readFail = onException callerInput
+                                                         in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=1"
+                                                             in if readMore inp
+                                                                  then
+                                                                    let _ = "checkToken"
+                                                                     in let !(#
+                                                                               c,
+                                                                               cs
+                                                                               #) = readNext inp
+                                                                         in if (\c -> GHC.Classes.not (('<' GHC.Classes.== c) GHC.Classes.|| (('>' GHC.Classes.== c) GHC.Classes.|| (('+' GHC.Classes.== c) GHC.Classes.|| (('-' GHC.Classes.== c) GHC.Classes.|| ((',' GHC.Classes.== c) GHC.Classes.|| (('.' GHC.Classes.== c) GHC.Classes.|| (('[' GHC.Classes.== c) GHC.Classes.|| ((']' GHC.Classes.== c) GHC.Classes.|| GHC.Types.False))))))))) c
+                                                                              then
+                                                                                let _ = "lift2Value checkedHorizon=1"
+                                                                                 in do
+                                                                                      sr <- GHC.STRef.readSTRef reg
+                                                                                      let _ = "lift2Value checkedHorizon=1"
+                                                                                       in do
+                                                                                            let dupv = sr
+                                                                                            GHC.STRef.writeSTRef reg dupv
+                                                                                            let _ = "jump"
+                                                                                             in loop (GHC.Err.error "invalid onReturn") cs (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                              else
+                                                                                let _ = "checkToken.fail"
+                                                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp init Data.Set.Internal.empty
+                                                                  else
+                                                                    let _ = "checkHorizon.newCheck.fail"
+                                                                     in let failExp =
+                                                                              Data.Set.Internal.Bin
+                                                                                1
+                                                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                    ( case inputToken of
+                                                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
+                                                                                    )
+                                                                                )
+                                                                                Data.Set.Internal.Tip
+                                                                                Data.Set.Internal.Tip
+                                                                         in let (#
+                                                                                  farInp,
+                                                                                  farExp
+                                                                                  #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                    GHC.Types.LT ->
+                                                                                      (#
+                                                                                        inp,
+                                                                                        failExp
+                                                                                      #)
+                                                                                    GHC.Types.EQ ->
+                                                                                      (#
+                                                                                        init,
+                                                                                        failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                      #)
+                                                                                    GHC.Types.GT ->
+                                                                                      (#
+                                                                                        init,
+                                                                                        Data.Set.Internal.empty
+                                                                                      #)
+                                                                             in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                       in let _ = "jump"
+                                           in loop callerOnReturn callerInput (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure callerOnExceptionStackByLabel) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                      name = \(!callerOnReturn) (!callerInput) (!callerOnExceptionStackByLabel) ->
+                        let _ = "pushValue"
+                         in do
+                              let dupv = \x -> x
+                              reg <- GHC.STRef.newSTRef dupv
+                              let _ = "iter"
+                               in let onException loopInput =
+                                        let _ = "onException"
+                                         in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                              let _ = "comment: raiseAgainIfConsumed"
+                                               in let _ = "saveInput checkedHorizon=0"
+                                                   in let _ = "lift2Value checkedHorizon=0"
+                                                       in if ( \( Data.Text.Internal.Text
+                                                                    _
+                                                                    i
+                                                                    _
+                                                                  )
+                                                                ( Data.Text.Internal.Text
+                                                                    _
+                                                                    j
+                                                                    _
+                                                                  ) -> i GHC.Classes.== j
+                                                             )
+                                                            loopInput
+                                                            failInp
+                                                            then
+                                                              let _ = "choicesBranch checkedHorizon=0"
+                                                               in do
+                                                                    sr <- GHC.STRef.readSTRef reg
+                                                                    let _ = "pushValue"
+                                                                     in let _ = "lift2Value checkedHorizon=0"
+                                                                         in let _ = "resume"
+                                                                             in callerOnReturn
+                                                                                  farInp
+                                                                                  farExp
+                                                                                  ( let _ = "resume.genCode"
+                                                                                     in sr GHC.Types . []
+                                                                                  )
+                                                                                  failInp
+                                                            else
+                                                              let _ = "choicesBranch.else"
+                                                               in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure callerOnExceptionStackByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                      loop = \_callerOnReturn callerInput callerOnExceptionStackByLabel ->
+                                        let _ = "pushValue"
+                                         in let join = \farInp farExp v (!inp) ->
+                                                  let _ = "lift2Value checkedHorizon=0"
+                                                   in name
+                                                        ( let _ = "onReturn"
+                                                           in \farInp farExp v (!inp) ->
+                                                                let _ = "lift2Value checkedHorizon=0"
+                                                                 in let _ = "pushValue"
+                                                                     in let _ = "lift2Value checkedHorizon=0"
+                                                                         in do
+                                                                              sr <- GHC.STRef.readSTRef reg
+                                                                              let _ = "lift2Value checkedHorizon=0"
+                                                                               in do
+                                                                                    let dupv = \x -> sr ((GHC.Types.:) v x)
+                                                                                    GHC.STRef.writeSTRef reg dupv
+                                                                                    let _ = "jump"
+                                                                                     in loop (GHC.Err.error "invalid onReturn") inp (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (onException callerInput) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                        )
+                                                        inp
+                                                        (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (onException callerInput) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                             in let _ = "comment: look"
+                                                 in let _ = "saveInput checkedHorizon=0"
+                                                     in let _ = "comment: satisfy ((\\x_0 -> \\x_1 -> x_0) GHC.Types.True)"
+                                                         in let inp = callerInput
+                                                             in let readFail = onException callerInput
+                                                                 in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=1"
+                                                                     in if readMore inp
+                                                                          then
+                                                                            let _ = "checkToken"
+                                                                             in let !(#
+                                                                                       c,
+                                                                                       cs
+                                                                                       #) = readNext inp
+                                                                                 in let _ = "loadInput checkedHorizon=0"
+                                                                                     in let inp = callerInput
+                                                                                         in let readFail = readFail
+                                                                                             in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=1"
+                                                                                                 in if readMore inp
+                                                                                                      then
+                                                                                                        if (\x -> (\x -> \x -> (GHC.Classes.==) x x) '<' x) c
+                                                                                                          then
+                                                                                                            let _ = "choicesBranch checkedHorizon=1"
+                                                                                                             in let _ = "pushValue"
+                                                                                                                 in let _ = "comment: satisfy ((\\x_0 -> \\x_1 -> x_0) GHC.Types.True)"
+                                                                                                                     in let _ = "checkHorizon.oldCheck: checkedHorizon=1"
+                                                                                                                         in let _ = "checkToken"
+                                                                                                                             in let !(#
+                                                                                                                                       c,
+                                                                                                                                       cs
+                                                                                                                                       #) = readNext inp
+                                                                                                                                 in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                     in let _ = "resume"
+                                                                                                                                         in join
+                                                                                                                                              init
+                                                                                                                                              Data.Set.Internal.empty
+                                                                                                                                              ( let _ = "resume.genCode"
+                                                                                                                                                 in Parsers.Brainfuck.Types.Backward
+                                                                                                                                              )
+                                                                                                                                              cs
+                                                                                                          else
+                                                                                                            let _ = "choicesBranch.else"
+                                                                                                             in if (\x -> (\x -> \x -> (GHC.Classes.==) x x) '>' x) c
+                                                                                                                  then
+                                                                                                                    let _ = "choicesBranch checkedHorizon=1"
+                                                                                                                     in let _ = "pushValue"
+                                                                                                                         in let _ = "comment: satisfy ((\\x_0 -> \\x_1 -> x_0) GHC.Types.True)"
+                                                                                                                             in let _ = "checkHorizon.oldCheck: checkedHorizon=1"
+                                                                                                                                 in let _ = "checkToken"
+                                                                                                                                     in let !(#
+                                                                                                                                               c,
+                                                                                                                                               cs
+                                                                                                                                               #) = readNext inp
+                                                                                                                                         in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                             in let _ = "resume"
+                                                                                                                                                 in join
+                                                                                                                                                      init
+                                                                                                                                                      Data.Set.Internal.empty
+                                                                                                                                                      ( let _ = "resume.genCode"
+                                                                                                                                                         in Parsers.Brainfuck.Types.Forward
+                                                                                                                                                      )
+                                                                                                                                                      cs
+                                                                                                                  else
+                                                                                                                    let _ = "choicesBranch.else"
+                                                                                                                     in if (\x -> (\x -> \x -> (GHC.Classes.==) x x) '+' x) c
+                                                                                                                          then
+                                                                                                                            let _ = "choicesBranch checkedHorizon=1"
+                                                                                                                             in let _ = "pushValue"
+                                                                                                                                 in let _ = "comment: satisfy ((\\x_0 -> \\x_1 -> x_0) GHC.Types.True)"
+                                                                                                                                     in let _ = "checkHorizon.oldCheck: checkedHorizon=1"
+                                                                                                                                         in let _ = "checkToken"
+                                                                                                                                             in let !(#
+                                                                                                                                                       c,
+                                                                                                                                                       cs
+                                                                                                                                                       #) = readNext inp
+                                                                                                                                                 in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                     in let _ = "resume"
+                                                                                                                                                         in join
+                                                                                                                                                              init
+                                                                                                                                                              Data.Set.Internal.empty
+                                                                                                                                                              ( let _ = "resume.genCode"
+                                                                                                                                                                 in Parsers.Brainfuck.Types.Increment
+                                                                                                                                                              )
+                                                                                                                                                              cs
+                                                                                                                          else
+                                                                                                                            let _ = "choicesBranch.else"
+                                                                                                                             in if (\x -> (\x -> \x -> (GHC.Classes.==) x x) '-' x) c
+                                                                                                                                  then
+                                                                                                                                    let _ = "choicesBranch checkedHorizon=1"
+                                                                                                                                     in let _ = "pushValue"
+                                                                                                                                         in let _ = "comment: satisfy ((\\x_0 -> \\x_1 -> x_0) GHC.Types.True)"
+                                                                                                                                             in let _ = "checkHorizon.oldCheck: checkedHorizon=1"
+                                                                                                                                                 in let _ = "checkToken"
+                                                                                                                                                     in let !(#
+                                                                                                                                                               c,
+                                                                                                                                                               cs
+                                                                                                                                                               #) = readNext inp
+                                                                                                                                                         in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                             in let _ = "resume"
+                                                                                                                                                                 in join
+                                                                                                                                                                      init
+                                                                                                                                                                      Data.Set.Internal.empty
+                                                                                                                                                                      ( let _ = "resume.genCode"
+                                                                                                                                                                         in Parsers.Brainfuck.Types.Decrement
+                                                                                                                                                                      )
+                                                                                                                                                                      cs
+                                                                                                                                  else
+                                                                                                                                    let _ = "choicesBranch.else"
+                                                                                                                                     in if (\x -> (\x -> \x -> (GHC.Classes.==) x x) ',' x) c
+                                                                                                                                          then
+                                                                                                                                            let _ = "choicesBranch checkedHorizon=1"
+                                                                                                                                             in let _ = "pushValue"
+                                                                                                                                                 in let _ = "comment: satisfy ((\\x_0 -> \\x_1 -> x_0) GHC.Types.True)"
+                                                                                                                                                     in let _ = "checkHorizon.oldCheck: checkedHorizon=1"
+                                                                                                                                                         in let _ = "checkToken"
+                                                                                                                                                             in let !(#
+                                                                                                                                                                       c,
+                                                                                                                                                                       cs
+                                                                                                                                                                       #) = readNext inp
+                                                                                                                                                                 in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                     in let _ = "resume"
+                                                                                                                                                                         in join
+                                                                                                                                                                              init
+                                                                                                                                                                              Data.Set.Internal.empty
+                                                                                                                                                                              ( let _ = "resume.genCode"
+                                                                                                                                                                                 in Parsers.Brainfuck.Types.Input
+                                                                                                                                                                              )
+                                                                                                                                                                              cs
+                                                                                                                                          else
+                                                                                                                                            let _ = "choicesBranch.else"
+                                                                                                                                             in if (\x -> (\x -> \x -> (GHC.Classes.==) x x) '.' x) c
+                                                                                                                                                  then
+                                                                                                                                                    let _ = "choicesBranch checkedHorizon=1"
+                                                                                                                                                     in let _ = "pushValue"
+                                                                                                                                                         in let _ = "comment: satisfy ((\\x_0 -> \\x_1 -> x_0) GHC.Types.True)"
+                                                                                                                                                             in let _ = "checkHorizon.oldCheck: checkedHorizon=1"
+                                                                                                                                                                 in let _ = "checkToken"
+                                                                                                                                                                     in let !(#
+                                                                                                                                                                               c,
+                                                                                                                                                                               cs
+                                                                                                                                                                               #) = readNext inp
+                                                                                                                                                                         in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                             in let _ = "resume"
+                                                                                                                                                                                 in join
+                                                                                                                                                                                      init
+                                                                                                                                                                                      Data.Set.Internal.empty
+                                                                                                                                                                                      ( let _ = "resume.genCode"
+                                                                                                                                                                                         in Parsers.Brainfuck.Types.Output
+                                                                                                                                                                                      )
+                                                                                                                                                                                      cs
+                                                                                                                                                  else
+                                                                                                                                                    let _ = "choicesBranch.else"
+                                                                                                                                                     in if (\x -> (\x -> \x -> (GHC.Classes.==) x x) '[' x) c
+                                                                                                                                                          then
+                                                                                                                                                            let _ = "choicesBranch checkedHorizon=1"
+                                                                                                                                                             in let _ = "pushValue"
+                                                                                                                                                                 in let _ = "comment: satisfy ((\\x_0 -> \\x_1 -> x_0) GHC.Types.True)"
+                                                                                                                                                                     in let _ = "checkHorizon.oldCheck: checkedHorizon=1"
+                                                                                                                                                                         in let _ = "checkToken"
+                                                                                                                                                                             in let !(#
+                                                                                                                                                                                       c,
+                                                                                                                                                                                       cs
+                                                                                                                                                                                       #) = readNext inp
+                                                                                                                                                                                 in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                     in name
+                                                                                                                                                                                          ( let _ = "onReturn"
+                                                                                                                                                                                             in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                  let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                   in name
+                                                                                                                                                                                                        ( let _ = "onReturn"
+                                                                                                                                                                                                           in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                 in let _ = "comment: satisfy ((GHC.Classes.==) ']')"
+                                                                                                                                                                                                                     in let inp = inp
+                                                                                                                                                                                                                         in let readFail = readFail
+                                                                                                                                                                                                                             in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=1"
+                                                                                                                                                                                                                                 in if readMore inp
+                                                                                                                                                                                                                                      then
+                                                                                                                                                                                                                                        let _ = "checkToken"
+                                                                                                                                                                                                                                         in let !(#
+                                                                                                                                                                                                                                                   c,
+                                                                                                                                                                                                                                                   cs
+                                                                                                                                                                                                                                                   #) = readNext inp
+                                                                                                                                                                                                                                             in if (GHC.Classes.==) ']' c
+                                                                                                                                                                                                                                                  then
+                                                                                                                                                                                                                                                    let _ = "lift2Value checkedHorizon=1"
+                                                                                                                                                                                                                                                     in let _ = "resume"
+                                                                                                                                                                                                                                                         in join
+                                                                                                                                                                                                                                                              farInp
+                                                                                                                                                                                                                                                              farExp
+                                                                                                                                                                                                                                                              ( let _ = "resume.genCode"
+                                                                                                                                                                                                                                                                 in Parsers.Brainfuck.Types.Loop v
+                                                                                                                                                                                                                                                              )
+                                                                                                                                                                                                                                                              cs
+                                                                                                                                                                                                                                                  else
+                                                                                                                                                                                                                                                    let _ = "checkToken.fail"
+                                                                                                                                                                                                                                                     in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                                                                                                                                                      else
+                                                                                                                                                                                                                                        let _ = "checkHorizon.newCheck.fail"
+                                                                                                                                                                                                                                         in let failExp =
+                                                                                                                                                                                                                                                  Data.Set.Internal.Bin
+                                                                                                                                                                                                                                                    1
+                                                                                                                                                                                                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                                                                        ( case inputToken of
+                                                                                                                                                                                                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
+                                                                                                                                                                                                                                                        )
+                                                                                                                                                                                                                                                    )
+                                                                                                                                                                                                                                                    Data.Set.Internal.Tip
+                                                                                                                                                                                                                                                    Data.Set.Internal.Tip
+                                                                                                                                                                                                                                             in let (#
+                                                                                                                                                                                                                                                      farInp,
+                                                                                                                                                                                                                                                      farExp
+                                                                                                                                                                                                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                                                                                                                                        GHC.Types.LT ->
+                                                                                                                                                                                                                                                          (#
+                                                                                                                                                                                                                                                            inp,
+                                                                                                                                                                                                                                                            failExp
+                                                                                                                                                                                                                                                          #)
+                                                                                                                                                                                                                                                        GHC.Types.EQ ->
+                                                                                                                                                                                                                                                          (#
+                                                                                                                                                                                                                                                            farInp,
+                                                                                                                                                                                                                                                            failExp GHC.Base.<> farExp
+                                                                                                                                                                                                                                                          #)
+                                                                                                                                                                                                                                                        GHC.Types.GT ->
+                                                                                                                                                                                                                                                          (#
+                                                                                                                                                                                                                                                            farInp,
+                                                                                                                                                                                                                                                            farExp
+                                                                                                                                                                                                                                                          #)
+                                                                                                                                                                                                                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                                                                                                                        )
+                                                                                                                                                                                                        inp
+                                                                                                                                                                                                        (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                                          )
+                                                                                                                                                                                          cs
+                                                                                                                                                                                          (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                          else
+                                                                                                                                                            let _ = "choicesBranch.else"
+                                                                                                                                                             in let failExp = Data.Set.Internal.Bin 1 (Symantic.Parser.Grammar.Combinators.SomeFailure Symantic.Parser.Grammar.Combinators.FailureEmpty) Data.Set.Internal.Tip Data.Set.Internal.Tip
+                                                                                                                                                                 in let (#
+                                                                                                                                                                          farInp,
+                                                                                                                                                                          farExp
+                                                                                                                                                                          #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                                                                                                            GHC.Types.LT ->
+                                                                                                                                                                              (#
+                                                                                                                                                                                inp,
+                                                                                                                                                                                failExp
+                                                                                                                                                                              #)
+                                                                                                                                                                            GHC.Types.EQ ->
+                                                                                                                                                                              (#
+                                                                                                                                                                                init,
+                                                                                                                                                                                failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                                                                                                              #)
+                                                                                                                                                                            GHC.Types.GT ->
+                                                                                                                                                                              (#
+                                                                                                                                                                                init,
+                                                                                                                                                                                Data.Set.Internal.empty
+                                                                                                                                                                              #)
+                                                                                                                                                                     in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                      else
+                                                                                                        let _ = "checkHorizon.newCheck.fail"
+                                                                                                         in let failExp =
+                                                                                                                  Data.Set.Internal.Bin
+                                                                                                                    1
+                                                                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                        ( case inputToken of
+                                                                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
+                                                                                                                        )
+                                                                                                                    )
+                                                                                                                    Data.Set.Internal.Tip
+                                                                                                                    Data.Set.Internal.Tip
+                                                                                                             in let (#
+                                                                                                                      farInp,
+                                                                                                                      farExp
+                                                                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                                                        GHC.Types.LT ->
+                                                                                                                          (#
+                                                                                                                            inp,
+                                                                                                                            failExp
+                                                                                                                          #)
+                                                                                                                        GHC.Types.EQ ->
+                                                                                                                          (#
+                                                                                                                            init,
+                                                                                                                            failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                                                          #)
+                                                                                                                        GHC.Types.GT ->
+                                                                                                                          (#
+                                                                                                                            init,
+                                                                                                                            Data.Set.Internal.empty
+                                                                                                                          #)
+                                                                                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                          else
+                                                                            let _ = "checkHorizon.newCheck.fail"
+                                                                             in let failExp =
+                                                                                      Data.Set.Internal.Bin
+                                                                                        1
+                                                                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                            ( case inputToken of
+                                                                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
+                                                                                            )
+                                                                                        )
+                                                                                        Data.Set.Internal.Tip
+                                                                                        Data.Set.Internal.Tip
+                                                                                 in let (#
+                                                                                          farInp,
+                                                                                          farExp
+                                                                                          #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                            GHC.Types.LT ->
+                                                                                              (#
+                                                                                                inp,
+                                                                                                failExp
+                                                                                              #)
+                                                                                            GHC.Types.EQ ->
+                                                                                              (#
+                                                                                                init,
+                                                                                                failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                              #)
+                                                                                            GHC.Types.GT ->
+                                                                                              (#
+                                                                                                init,
+                                                                                                Data.Set.Internal.empty
+                                                                                              #)
+                                                                                     in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                   in let _ = "jump"
+                                       in loop callerOnReturn callerInput (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure callerOnExceptionStackByLabel) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                   in let _ = "pushValue"
+                       in name
+                            ( let _ = "onReturn"
+                               in \farInp farExp v (!inp) ->
+                                    let _ = "lift2Value checkedHorizon=0"
+                                     in name
+                                          ( let _ = "onReturn"
+                                             in \farInp farExp v (!inp) ->
+                                                  let _ = "lift2Value checkedHorizon=0"
+                                                   in let _ = "resume"
+                                                       in finalRet
+                                                            farInp
+                                                            farExp
+                                                            ( let _ = "resume.genCode"
+                                                               in GHC.Show.show v
+                                                            )
+                                                            inp
+                                          )
+                                          inp
+                                          Data.Map.Internal.Tip
+                            )
+                            init
+                            Data.Map.Internal.Tip
+        )
diff --git a/tests/Golden/Splice/G14.expected.txt b/tests/Golden/Splice/G14.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Splice/G14.expected.txt
@@ -0,0 +1,4619 @@
+\(input :: inp) ->
+  let !(#
+         init,
+         readMore,
+         readNext
+         #) =
+          let _ = "cursorOf"
+           in let next
+                    ( t@( Data.Text.Internal.Text
+                            arr
+                            off
+                            unconsumed
+                          )
+                      ) =
+                      let !( Data.Text.Unsafe.Iter
+                               c
+                               d
+                             ) = Data.Text.Unsafe.iter t 0
+                       in (#
+                            c,
+                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
+                          #)
+                  more
+                    ( Data.Text.Internal.Text
+                        _
+                        _
+                        unconsumed
+                      ) = unconsumed GHC.Classes.> 0
+               in (# input, more, next #)
+      finalRet = \_farInp _farExp v _inp -> Symantic.Parser.Machine.Generate.returnST GHC.Base.$ Data.Either.Right v
+      finalRaise ::
+        forall st b.
+        Symantic.Parser.Machine.Generate.OnException
+          st
+          inp
+          b = \(!exn) _failInp (!farInp) (!farExp) ->
+          Symantic.Parser.Machine.Generate.returnST GHC.Base.$
+            Data.Either.Left
+              Symantic.Parser.Machine.Generate.ParsingError
+                { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
+                  Symantic.Parser.Machine.Generate.parsingErrorException = exn,
+                  Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
+                    if readMore farInp
+                      then
+                        GHC.Maybe.Just
+                          ( let (#
+                                  c,
+                                  _
+                                  #) = readNext farInp
+                             in c
+                          )
+                      else GHC.Maybe.Nothing,
+                  Symantic.Parser.Machine.Generate.parsingErrorExpecting =
+                    let ( minHoriz,
+                          res
+                          ) =
+                            Data.Set.Internal.foldr
+                              ( \f
+                                 ( minH,
+                                   acc
+                                   ) -> case Symantic.Parser.Grammar.Combinators.unSomeFailure f of
+                                    GHC.Maybe.Just (Symantic.Parser.Grammar.Combinators.FailureHorizon h :: Symantic.Parser.Grammar.Combinators.Failure (Symantic.Parser.Grammar.Combinators.CombSatisfiable (Symantic.Parser.Machine.Input.InputToken inp)))
+                                      | GHC.Maybe.Just old <- minH ->
+                                        ( GHC.Maybe.Just (GHC.Classes.min old h),
+                                          acc
+                                        )
+                                      | GHC.Base.otherwise ->
+                                        ( GHC.Maybe.Just h,
+                                          acc
+                                        )
+                                    _ ->
+                                      ( minH,
+                                        f GHC.Types.: acc
+                                      )
+                              )
+                              ( GHC.Maybe.Nothing,
+                                GHC.Types . []
+                              )
+                              farExp
+                     in Data.Set.Internal.fromList GHC.Base.$
+                          ( case minHoriz of
+                              GHC.Maybe.Just h -> Symantic.Parser.Grammar.Combinators.SomeFailure (Symantic.Parser.Grammar.Combinators.FailureHorizon @(Symantic.Parser.Machine.Input.InputToken inp) h) GHC.Types.: res
+                              GHC.Maybe.Nothing -> res
+                          )
+                }
+   in GHC.ST.runST
+        ( let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
+           in let inp = init
+               in let readFail = finalRaise
+                   in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=1"
+                       in if readMore inp
+                            then
+                              let name = \(!callerOnReturn) (!callerInput) (!callerOnExceptionStackByLabel) ->
+                                    let _ = "catch ExceptionFailure checkedHorizon=0"
+                                     in let onException =
+                                              let _ = "onException"
+                                               in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                    let _ = "comment: raiseAgainIfConsumed"
+                                                     in let _ = "saveInput checkedHorizon=0"
+                                                         in let _ = "lift2Value checkedHorizon=0"
+                                                             in if ( \( Data.Text.Internal.Text
+                                                                          _
+                                                                          i
+                                                                          _
+                                                                        )
+                                                                      ( Data.Text.Internal.Text
+                                                                          _
+                                                                          j
+                                                                          _
+                                                                        ) -> i GHC.Classes.== j
+                                                                   )
+                                                                  callerInput
+                                                                  failInp
+                                                                  then
+                                                                    let _ = "choicesBranch checkedHorizon=0"
+                                                                     in let _ = "catch ExceptionFailure checkedHorizon=0"
+                                                                         in let onException =
+                                                                                  let _ = "onException"
+                                                                                   in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                        let _ = "comment: raiseAgainIfConsumed"
+                                                                                         in let _ = "saveInput checkedHorizon=0"
+                                                                                             in let _ = "lift2Value checkedHorizon=0"
+                                                                                                 in if ( \( Data.Text.Internal.Text
+                                                                                                              _
+                                                                                                              i
+                                                                                                              _
+                                                                                                            )
+                                                                                                          ( Data.Text.Internal.Text
+                                                                                                              _
+                                                                                                              j
+                                                                                                              _
+                                                                                                            ) -> i GHC.Classes.== j
+                                                                                                       )
+                                                                                                      failInp
+                                                                                                      failInp
+                                                                                                      then
+                                                                                                        let _ = "choicesBranch checkedHorizon=0"
+                                                                                                         in let _ = "pushValue"
+                                                                                                             in name
+                                                                                                                  ( let _ = "onReturn"
+                                                                                                                     in \farInp farExp v (!inp) ->
+                                                                                                                          let _ = "lift2Value checkedHorizon=0"
+                                                                                                                           in let join = \farInp farExp v (!inp) ->
+                                                                                                                                    let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                     in let _ = "resume"
+                                                                                                                                         in callerOnReturn
+                                                                                                                                              farInp
+                                                                                                                                              farExp
+                                                                                                                                              ( let _ = "resume.genCode"
+                                                                                                                                                 in v
+                                                                                                                                              )
+                                                                                                                                              inp
+                                                                                                                               in let _ = "catch ExceptionFailure checkedHorizon=0"
+                                                                                                                                   in let onException =
+                                                                                                                                            let _ = "onException"
+                                                                                                                                             in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                                                                                  let _ = "comment: raiseAgainIfConsumed"
+                                                                                                                                                   in let _ = "saveInput checkedHorizon=0"
+                                                                                                                                                       in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                           in if ( \( Data.Text.Internal.Text
+                                                                                                                                                                        _
+                                                                                                                                                                        i
+                                                                                                                                                                        _
+                                                                                                                                                                      )
+                                                                                                                                                                    ( Data.Text.Internal.Text
+                                                                                                                                                                        _
+                                                                                                                                                                        j
+                                                                                                                                                                        _
+                                                                                                                                                                      ) -> i GHC.Classes.== j
+                                                                                                                                                                 )
+                                                                                                                                                                inp
+                                                                                                                                                                failInp
+                                                                                                                                                                then
+                                                                                                                                                                  let _ = "choicesBranch checkedHorizon=0"
+                                                                                                                                                                   in name
+                                                                                                                                                                        ( let _ = "onReturn"
+                                                                                                                                                                           in \farInp farExp v (!inp) ->
+                                                                                                                                                                                let _ = "resume"
+                                                                                                                                                                                 in join
+                                                                                                                                                                                      farInp
+                                                                                                                                                                                      farExp
+                                                                                                                                                                                      ( let _ = "resume.genCode"
+                                                                                                                                                                                         in v
+                                                                                                                                                                                      )
+                                                                                                                                                                                      inp
+                                                                                                                                                                        )
+                                                                                                                                                                        failInp
+                                                                                                                                                                        Data.Map.Internal.Tip
+                                                                                                                                                                else
+                                                                                                                                                                  let _ = "choicesBranch.else"
+                                                                                                                                                                   in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure callerOnExceptionStackByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                                                                       in let _ = "pushValue"
+                                                                                                                                           in let join = \farInp farExp v (!inp) ->
+                                                                                                                                                    let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                     in let _ = "commit"
+                                                                                                                                                         in let _ = "resume"
+                                                                                                                                                             in join
+                                                                                                                                                                  farInp
+                                                                                                                                                                  farExp
+                                                                                                                                                                  ( let _ = "resume.genCode"
+                                                                                                                                                                     in GHC.Tuple . ()
+                                                                                                                                                                  )
+                                                                                                                                                                  inp
+                                                                                                                                               in let _ = "catch ExceptionFailure checkedHorizon=0"
+                                                                                                                                                   in let onException =
+                                                                                                                                                            let _ = "onException"
+                                                                                                                                                             in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                                                                                                  let _ = "comment: raiseAgainIfConsumed"
+                                                                                                                                                                   in let _ = "saveInput checkedHorizon=0"
+                                                                                                                                                                       in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                           in if ( \( Data.Text.Internal.Text
+                                                                                                                                                                                        _
+                                                                                                                                                                                        i
+                                                                                                                                                                                        _
+                                                                                                                                                                                      )
+                                                                                                                                                                                    ( Data.Text.Internal.Text
+                                                                                                                                                                                        _
+                                                                                                                                                                                        j
+                                                                                                                                                                                        _
+                                                                                                                                                                                      ) -> i GHC.Classes.== j
+                                                                                                                                                                                 )
+                                                                                                                                                                                inp
+                                                                                                                                                                                failInp
+                                                                                                                                                                                then
+                                                                                                                                                                                  let _ = "choicesBranch checkedHorizon=0"
+                                                                                                                                                                                   in name
+                                                                                                                                                                                        ( let _ = "onReturn"
+                                                                                                                                                                                           in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                let _ = "resume"
+                                                                                                                                                                                                 in join
+                                                                                                                                                                                                      farInp
+                                                                                                                                                                                                      farExp
+                                                                                                                                                                                                      ( let _ = "resume.genCode"
+                                                                                                                                                                                                         in v
+                                                                                                                                                                                                      )
+                                                                                                                                                                                                      inp
+                                                                                                                                                                                        )
+                                                                                                                                                                                        failInp
+                                                                                                                                                                                        (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure onException Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                                else
+                                                                                                                                                                                  let _ = "choicesBranch.else"
+                                                                                                                                                                                   in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                                                                                       in let _ = "pushValue"
+                                                                                                                                                           in name
+                                                                                                                                                                ( let _ = "onReturn"
+                                                                                                                                                                   in \farInp farExp v (!inp) ->
+                                                                                                                                                                        let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                         in let join = \farInp farExp v (!inp) ->
+                                                                                                                                                                                  let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                   in name
+                                                                                                                                                                                        ( let _ = "onReturn"
+                                                                                                                                                                                           in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                 in let _ = "commit"
+                                                                                                                                                                                                     in let _ = "resume"
+                                                                                                                                                                                                         in join
+                                                                                                                                                                                                              farInp
+                                                                                                                                                                                                              farExp
+                                                                                                                                                                                                              ( let _ = "resume.genCode"
+                                                                                                                                                                                                                 in v
+                                                                                                                                                                                                              )
+                                                                                                                                                                                                              inp
+                                                                                                                                                                                        )
+                                                                                                                                                                                        inp
+                                                                                                                                                                                        (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure onException Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                             in let _ = "catch ExceptionFailure checkedHorizon=0"
+                                                                                                                                                                                 in let onException =
+                                                                                                                                                                                          let _ = "onException"
+                                                                                                                                                                                           in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                                                                                                                                let _ = "comment: raiseAgainIfConsumed"
+                                                                                                                                                                                                 in let _ = "saveInput checkedHorizon=0"
+                                                                                                                                                                                                     in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                         in if ( \( Data.Text.Internal.Text
+                                                                                                                                                                                                                      _
+                                                                                                                                                                                                                      i
+                                                                                                                                                                                                                      _
+                                                                                                                                                                                                                    )
+                                                                                                                                                                                                                  ( Data.Text.Internal.Text
+                                                                                                                                                                                                                      _
+                                                                                                                                                                                                                      j
+                                                                                                                                                                                                                      _
+                                                                                                                                                                                                                    ) -> i GHC.Classes.== j
+                                                                                                                                                                                                               )
+                                                                                                                                                                                                              inp
+                                                                                                                                                                                                              failInp
+                                                                                                                                                                                                              then
+                                                                                                                                                                                                                let _ = "choicesBranch checkedHorizon=0"
+                                                                                                                                                                                                                 in name
+                                                                                                                                                                                                                      ( let _ = "onReturn"
+                                                                                                                                                                                                                         in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                              let _ = "resume"
+                                                                                                                                                                                                                               in join
+                                                                                                                                                                                                                                    farInp
+                                                                                                                                                                                                                                    farExp
+                                                                                                                                                                                                                                    ( let _ = "resume.genCode"
+                                                                                                                                                                                                                                       in v
+                                                                                                                                                                                                                                    )
+                                                                                                                                                                                                                                    inp
+                                                                                                                                                                                                                      )
+                                                                                                                                                                                                                      failInp
+                                                                                                                                                                                                                      Data.Map.Internal.Tip
+                                                                                                                                                                                                              else
+                                                                                                                                                                                                                let _ = "choicesBranch.else"
+                                                                                                                                                                                                                 in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                                                                                                                     in let _ = "pushValue"
+                                                                                                                                                                                         in name
+                                                                                                                                                                                              ( let _ = "onReturn"
+                                                                                                                                                                                                 in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                      let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                       in let _ = "pushValue"
+                                                                                                                                                                                                           in do
+                                                                                                                                                                                                                let dupv = \x -> x
+                                                                                                                                                                                                                reg <- GHC.STRef.newSTRef dupv
+                                                                                                                                                                                                                let _ = "iter"
+                                                                                                                                                                                                                 in let onException loopInput =
+                                                                                                                                                                                                                          let _ = "onException"
+                                                                                                                                                                                                                           in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                                                                                                                                                                let _ = "comment: raiseAgainIfConsumed"
+                                                                                                                                                                                                                                 in let _ = "saveInput checkedHorizon=0"
+                                                                                                                                                                                                                                     in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                         in if ( \( Data.Text.Internal.Text
+                                                                                                                                                                                                                                                      _
+                                                                                                                                                                                                                                                      i
+                                                                                                                                                                                                                                                      _
+                                                                                                                                                                                                                                                    )
+                                                                                                                                                                                                                                                  ( Data.Text.Internal.Text
+                                                                                                                                                                                                                                                      _
+                                                                                                                                                                                                                                                      j
+                                                                                                                                                                                                                                                      _
+                                                                                                                                                                                                                                                    ) -> i GHC.Classes.== j
+                                                                                                                                                                                                                                               )
+                                                                                                                                                                                                                                              loopInput
+                                                                                                                                                                                                                                              failInp
+                                                                                                                                                                                                                                              then
+                                                                                                                                                                                                                                                let _ = "choicesBranch checkedHorizon=0"
+                                                                                                                                                                                                                                                 in do
+                                                                                                                                                                                                                                                      sr <- GHC.STRef.readSTRef reg
+                                                                                                                                                                                                                                                      name
+                                                                                                                                                                                                                                                        ( let _ = "onReturn"
+                                                                                                                                                                                                                                                           in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                                                let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                 in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                     in name
+                                                                                                                                                                                                                                                                          ( let _ = "onReturn"
+                                                                                                                                                                                                                                                                             in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                                                                  let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                                   in let _ = "commit"
+                                                                                                                                                                                                                                                                                       in let _ = "resume"
+                                                                                                                                                                                                                                                                                           in join
+                                                                                                                                                                                                                                                                                                farInp
+                                                                                                                                                                                                                                                                                                farExp
+                                                                                                                                                                                                                                                                                                ( let _ = "resume.genCode"
+                                                                                                                                                                                                                                                                                                   in GHC.Tuple . ()
+                                                                                                                                                                                                                                                                                                )
+                                                                                                                                                                                                                                                                                                inp
+                                                                                                                                                                                                                                                                          )
+                                                                                                                                                                                                                                                                          inp
+                                                                                                                                                                                                                                                                          Data.Map.Internal.Tip
+                                                                                                                                                                                                                                                        )
+                                                                                                                                                                                                                                                        failInp
+                                                                                                                                                                                                                                                        Data.Map.Internal.Tip
+                                                                                                                                                                                                                                              else
+                                                                                                                                                                                                                                                let _ = "choicesBranch.else"
+                                                                                                                                                                                                                                                 in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                                                                                                                                                        loop = \_callerOnReturn callerInput callerOnExceptionStackByLabel ->
+                                                                                                                                                                                                                          let _ = "pushValue"
+                                                                                                                                                                                                                           in name
+                                                                                                                                                                                                                                ( let _ = "onReturn"
+                                                                                                                                                                                                                                   in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                        let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                         in name
+                                                                                                                                                                                                                                              ( let _ = "onReturn"
+                                                                                                                                                                                                                                                 in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                                      let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                       in name
+                                                                                                                                                                                                                                                            ( let _ = "onReturn"
+                                                                                                                                                                                                                                                               in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                                                    let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                     in do
+                                                                                                                                                                                                                                                                          sr <- GHC.STRef.readSTRef reg
+                                                                                                                                                                                                                                                                          let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                           in do
+                                                                                                                                                                                                                                                                                let dupv = v v sr
+                                                                                                                                                                                                                                                                                GHC.STRef.writeSTRef reg dupv
+                                                                                                                                                                                                                                                                                let _ = "jump"
+                                                                                                                                                                                                                                                                                 in loop (GHC.Err.error "invalid onReturn") inp (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (onException callerInput) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                                                                                                            )
+                                                                                                                                                                                                                                                            inp
+                                                                                                                                                                                                                                                            (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (onException callerInput) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                                                                                              )
+                                                                                                                                                                                                                                              inp
+                                                                                                                                                                                                                                              (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (onException callerInput) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                                                                                )
+                                                                                                                                                                                                                                callerInput
+                                                                                                                                                                                                                                Data.Map.Internal.Tip
+                                                                                                                                                                                                                     in let _ = "jump"
+                                                                                                                                                                                                                         in loop callerOnReturn inp (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure onException Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                                              )
+                                                                                                                                                                                              inp
+                                                                                                                                                                                              (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure onException Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                )
+                                                                                                                                                                inp
+                                                                                                                                                                (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure onException Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                  )
+                                                                                                                  failInp
+                                                                                                                  (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure callerOnExceptionStackByLabel) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                      else
+                                                                                                        let _ = "choicesBranch.else"
+                                                                                                         in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure callerOnExceptionStackByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                             in let _ = "pushValue"
+                                                                                 in let _ = "comment: satisfy ((GHC.Classes.==) '\\'')"
+                                                                                     in let inp = failInp
+                                                                                         in let readFail = onException
+                                                                                             in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=4"
+                                                                                                 in if readMore (Symantic.Parser.Machine.Input.shiftRightText 3 inp)
+                                                                                                      then
+                                                                                                        let _ = "checkToken"
+                                                                                                         in let !(#
+                                                                                                                   c,
+                                                                                                                   cs
+                                                                                                                   #) = readNext inp
+                                                                                                             in if (GHC.Classes.==) '\'' c
+                                                                                                                  then
+                                                                                                                    let _ = "lift2Value checkedHorizon=4"
+                                                                                                                     in let join = \farInp farExp v (!inp) ->
+                                                                                                                              let _ = "lift2Value checkedHorizon=0"
+                                                                                                                               in let _ = "comment: satisfy ((GHC.Classes.==) '\\'')"
+                                                                                                                                   in let inp = inp
+                                                                                                                                       in let readFail = readFail
+                                                                                                                                           in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=2"
+                                                                                                                                               in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 inp)
+                                                                                                                                                    then
+                                                                                                                                                      let _ = "checkToken"
+                                                                                                                                                       in let !(#
+                                                                                                                                                                 c,
+                                                                                                                                                                 cs
+                                                                                                                                                                 #) = readNext inp
+                                                                                                                                                           in if (GHC.Classes.==) '\'' c
+                                                                                                                                                                then
+                                                                                                                                                                  let _ = "lift2Value checkedHorizon=2"
+                                                                                                                                                                   in name
+                                                                                                                                                                        ( let _ = "onReturn"
+                                                                                                                                                                           in \farInp farExp v (!inp) ->
+                                                                                                                                                                                let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                 in let _ = "commit"
+                                                                                                                                                                                     in let _ = "resume"
+                                                                                                                                                                                         in callerOnReturn
+                                                                                                                                                                                              farInp
+                                                                                                                                                                                              farExp
+                                                                                                                                                                                              ( let _ = "resume.genCode"
+                                                                                                                                                                                                 in v
+                                                                                                                                                                                              )
+                                                                                                                                                                                              inp
+                                                                                                                                                                        )
+                                                                                                                                                                        cs
+                                                                                                                                                                        (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                else
+                                                                                                                                                                  let _ = "checkToken.fail"
+                                                                                                                                                                   in let failExp =
+                                                                                                                                                                            Data.Set.Internal.Bin
+                                                                                                                                                                              1
+                                                                                                                                                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                  ( case inputToken of
+                                                                                                                                                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '\''
+                                                                                                                                                                                  )
+                                                                                                                                                                              )
+                                                                                                                                                                              Data.Set.Internal.Tip
+                                                                                                                                                                              Data.Set.Internal.Tip
+                                                                                                                                                                       in let (#
+                                                                                                                                                                                farInp,
+                                                                                                                                                                                farExp
+                                                                                                                                                                                #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                                                                  GHC.Types.LT ->
+                                                                                                                                                                                    (#
+                                                                                                                                                                                      inp,
+                                                                                                                                                                                      failExp
+                                                                                                                                                                                    #)
+                                                                                                                                                                                  GHC.Types.EQ ->
+                                                                                                                                                                                    (#
+                                                                                                                                                                                      farInp,
+                                                                                                                                                                                      failExp GHC.Base.<> farExp
+                                                                                                                                                                                    #)
+                                                                                                                                                                                  GHC.Types.GT ->
+                                                                                                                                                                                    (#
+                                                                                                                                                                                      farInp,
+                                                                                                                                                                                      farExp
+                                                                                                                                                                                    #)
+                                                                                                                                                                           in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                                                                    else
+                                                                                                                                                      let _ = "checkHorizon.newCheck.fail"
+                                                                                                                                                       in let failExp =
+                                                                                                                                                                Data.Set.Internal.Bin
+                                                                                                                                                                  1
+                                                                                                                                                                  ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                      ( case inputToken of
+                                                                                                                                                                          (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
+                                                                                                                                                                      )
+                                                                                                                                                                  )
+                                                                                                                                                                  Data.Set.Internal.Tip
+                                                                                                                                                                  Data.Set.Internal.Tip
+                                                                                                                                                           in let (#
+                                                                                                                                                                    farInp,
+                                                                                                                                                                    farExp
+                                                                                                                                                                    #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                                                      GHC.Types.LT ->
+                                                                                                                                                                        (#
+                                                                                                                                                                          inp,
+                                                                                                                                                                          failExp
+                                                                                                                                                                        #)
+                                                                                                                                                                      GHC.Types.EQ ->
+                                                                                                                                                                        (#
+                                                                                                                                                                          farInp,
+                                                                                                                                                                          failExp GHC.Base.<> farExp
+                                                                                                                                                                        #)
+                                                                                                                                                                      GHC.Types.GT ->
+                                                                                                                                                                        (#
+                                                                                                                                                                          farInp,
+                                                                                                                                                                          farExp
+                                                                                                                                                                        #)
+                                                                                                                                                               in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                                         in let _ = "catch ExceptionFailure checkedHorizon=4"
+                                                                                                                             in let onException =
+                                                                                                                                      let _ = "onException"
+                                                                                                                                       in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                                                                            let _ = "comment: raiseAgainIfConsumed"
+                                                                                                                                             in let _ = "saveInput checkedHorizon=0"
+                                                                                                                                                 in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                     in if ( \( Data.Text.Internal.Text
+                                                                                                                                                                  _
+                                                                                                                                                                  i
+                                                                                                                                                                  _
+                                                                                                                                                                )
+                                                                                                                                                              ( Data.Text.Internal.Text
+                                                                                                                                                                  _
+                                                                                                                                                                  j
+                                                                                                                                                                  _
+                                                                                                                                                                ) -> i GHC.Classes.== j
+                                                                                                                                                           )
+                                                                                                                                                          cs
+                                                                                                                                                          failInp
+                                                                                                                                                          then
+                                                                                                                                                            let _ = "choicesBranch checkedHorizon=0"
+                                                                                                                                                             in let _ = "pushValue"
+                                                                                                                                                                 in let _ = "comment: satisfy ((GHC.Classes.==) '\\\\')"
+                                                                                                                                                                     in let inp = failInp
+                                                                                                                                                                         in let readFail = readFail
+                                                                                                                                                                             in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=4"
+                                                                                                                                                                                 in if readMore (Symantic.Parser.Machine.Input.shiftRightText 3 inp)
+                                                                                                                                                                                      then
+                                                                                                                                                                                        let _ = "checkToken"
+                                                                                                                                                                                         in let !(#
+                                                                                                                                                                                                   c,
+                                                                                                                                                                                                   cs
+                                                                                                                                                                                                   #) = readNext inp
+                                                                                                                                                                                             in if (GHC.Classes.==) '\\' c
+                                                                                                                                                                                                  then
+                                                                                                                                                                                                    let _ = "lift2Value checkedHorizon=4"
+                                                                                                                                                                                                     in let _ = "comment: 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))))))"
+                                                                                                                                                                                                         in let _ = "checkHorizon.oldCheck: checkedHorizon=4"
+                                                                                                                                                                                                             in let _ = "checkToken"
+                                                                                                                                                                                                                 in let !(#
+                                                                                                                                                                                                                           c,
+                                                                                                                                                                                                                           cs
+                                                                                                                                                                                                                           #) = readNext cs
+                                                                                                                                                                                                                     in if (\t -> ('0' GHC.Classes.== t) GHC.Classes.|| (('t' GHC.Classes.== t) GHC.Classes.|| (('n' GHC.Classes.== t) GHC.Classes.|| (('v' GHC.Classes.== t) GHC.Classes.|| (('f' GHC.Classes.== t) GHC.Classes.|| (('r' GHC.Classes.== t) GHC.Classes.|| GHC.Types.False)))))) c
+                                                                                                                                                                                                                          then
+                                                                                                                                                                                                                            let _ = "lift2Value checkedHorizon=3"
+                                                                                                                                                                                                                             in name
+                                                                                                                                                                                                                                  ( let _ = "onReturn"
+                                                                                                                                                                                                                                     in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                          let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                           in let _ = "resume"
+                                                                                                                                                                                                                                               in join
+                                                                                                                                                                                                                                                    farInp
+                                                                                                                                                                                                                                                    farExp
+                                                                                                                                                                                                                                                    ( let _ = "resume.genCode"
+                                                                                                                                                                                                                                                       in v
+                                                                                                                                                                                                                                                    )
+                                                                                                                                                                                                                                                    inp
+                                                                                                                                                                                                                                  )
+                                                                                                                                                                                                                                  cs
+                                                                                                                                                                                                                                  Data.Map.Internal.Tip
+                                                                                                                                                                                                                          else
+                                                                                                                                                                                                                            let _ = "checkToken.fail"
+                                                                                                                                                                                                                             in let failExp =
+                                                                                                                                                                                                                                      Data.Set.Internal.Bin
+                                                                                                                                                                                                                                        6
+                                                                                                                                                                                                                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                                                            ( case inputToken of
+                                                                                                                                                                                                                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'n'
+                                                                                                                                                                                                                                            )
+                                                                                                                                                                                                                                        )
+                                                                                                                                                                                                                                        ( Data.Set.Internal.Bin
+                                                                                                                                                                                                                                            2
+                                                                                                                                                                                                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                                                                ( case inputToken of
+                                                                                                                                                                                                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '0'
+                                                                                                                                                                                                                                                )
+                                                                                                                                                                                                                                            )
+                                                                                                                                                                                                                                            Data.Set.Internal.Tip
+                                                                                                                                                                                                                                            ( Data.Set.Internal.Bin
+                                                                                                                                                                                                                                                1
+                                                                                                                                                                                                                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                                                                    ( case inputToken of
+                                                                                                                                                                                                                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'f'
+                                                                                                                                                                                                                                                    )
+                                                                                                                                                                                                                                                )
+                                                                                                                                                                                                                                                Data.Set.Internal.Tip
+                                                                                                                                                                                                                                                Data.Set.Internal.Tip
+                                                                                                                                                                                                                                            )
+                                                                                                                                                                                                                                        )
+                                                                                                                                                                                                                                        ( Data.Set.Internal.Bin
+                                                                                                                                                                                                                                            3
+                                                                                                                                                                                                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                                                                ( case inputToken of
+                                                                                                                                                                                                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 't'
+                                                                                                                                                                                                                                                )
+                                                                                                                                                                                                                                            )
+                                                                                                                                                                                                                                            ( Data.Set.Internal.Bin
+                                                                                                                                                                                                                                                1
+                                                                                                                                                                                                                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                                                                    ( case inputToken of
+                                                                                                                                                                                                                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'r'
+                                                                                                                                                                                                                                                    )
+                                                                                                                                                                                                                                                )
+                                                                                                                                                                                                                                                Data.Set.Internal.Tip
+                                                                                                                                                                                                                                                Data.Set.Internal.Tip
+                                                                                                                                                                                                                                            )
+                                                                                                                                                                                                                                            ( Data.Set.Internal.Bin
+                                                                                                                                                                                                                                                1
+                                                                                                                                                                                                                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                                                                    ( case inputToken of
+                                                                                                                                                                                                                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'v'
+                                                                                                                                                                                                                                                    )
+                                                                                                                                                                                                                                                )
+                                                                                                                                                                                                                                                Data.Set.Internal.Tip
+                                                                                                                                                                                                                                                Data.Set.Internal.Tip
+                                                                                                                                                                                                                                            )
+                                                                                                                                                                                                                                        )
+                                                                                                                                                                                                                                 in let (#
+                                                                                                                                                                                                                                          farInp,
+                                                                                                                                                                                                                                          farExp
+                                                                                                                                                                                                                                          #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp cs of
+                                                                                                                                                                                                                                            GHC.Types.LT ->
+                                                                                                                                                                                                                                              (#
+                                                                                                                                                                                                                                                cs,
+                                                                                                                                                                                                                                                failExp
+                                                                                                                                                                                                                                              #)
+                                                                                                                                                                                                                                            GHC.Types.EQ ->
+                                                                                                                                                                                                                                              (#
+                                                                                                                                                                                                                                                farInp,
+                                                                                                                                                                                                                                                failExp GHC.Base.<> farExp
+                                                                                                                                                                                                                                              #)
+                                                                                                                                                                                                                                            GHC.Types.GT ->
+                                                                                                                                                                                                                                              (#
+                                                                                                                                                                                                                                                farInp,
+                                                                                                                                                                                                                                                farExp
+                                                                                                                                                                                                                                              #)
+                                                                                                                                                                                                                                     in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                                                                                                                                                  else
+                                                                                                                                                                                                    let _ = "checkToken.fail"
+                                                                                                                                                                                                     in let failExp =
+                                                                                                                                                                                                              Data.Set.Internal.Bin
+                                                                                                                                                                                                                1
+                                                                                                                                                                                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                                    ( case inputToken of
+                                                                                                                                                                                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '\\'
+                                                                                                                                                                                                                    )
+                                                                                                                                                                                                                )
+                                                                                                                                                                                                                Data.Set.Internal.Tip
+                                                                                                                                                                                                                Data.Set.Internal.Tip
+                                                                                                                                                                                                         in let (#
+                                                                                                                                                                                                                  farInp,
+                                                                                                                                                                                                                  farExp
+                                                                                                                                                                                                                  #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                                                                                                    GHC.Types.LT ->
+                                                                                                                                                                                                                      (#
+                                                                                                                                                                                                                        inp,
+                                                                                                                                                                                                                        failExp
+                                                                                                                                                                                                                      #)
+                                                                                                                                                                                                                    GHC.Types.EQ ->
+                                                                                                                                                                                                                      (#
+                                                                                                                                                                                                                        farInp,
+                                                                                                                                                                                                                        failExp GHC.Base.<> farExp
+                                                                                                                                                                                                                      #)
+                                                                                                                                                                                                                    GHC.Types.GT ->
+                                                                                                                                                                                                                      (#
+                                                                                                                                                                                                                        farInp,
+                                                                                                                                                                                                                        farExp
+                                                                                                                                                                                                                      #)
+                                                                                                                                                                                                             in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                                                                                                      else
+                                                                                                                                                                                        let _ = "checkHorizon.newCheck.fail"
+                                                                                                                                                                                         in let failExp =
+                                                                                                                                                                                                  Data.Set.Internal.Bin
+                                                                                                                                                                                                    1
+                                                                                                                                                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                        ( case inputToken of
+                                                                                                                                                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 4
+                                                                                                                                                                                                        )
+                                                                                                                                                                                                    )
+                                                                                                                                                                                                    Data.Set.Internal.Tip
+                                                                                                                                                                                                    Data.Set.Internal.Tip
+                                                                                                                                                                                             in let (#
+                                                                                                                                                                                                      farInp,
+                                                                                                                                                                                                      farExp
+                                                                                                                                                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                                                                                        GHC.Types.LT ->
+                                                                                                                                                                                                          (#
+                                                                                                                                                                                                            inp,
+                                                                                                                                                                                                            failExp
+                                                                                                                                                                                                          #)
+                                                                                                                                                                                                        GHC.Types.EQ ->
+                                                                                                                                                                                                          (#
+                                                                                                                                                                                                            farInp,
+                                                                                                                                                                                                            failExp GHC.Base.<> farExp
+                                                                                                                                                                                                          #)
+                                                                                                                                                                                                        GHC.Types.GT ->
+                                                                                                                                                                                                          (#
+                                                                                                                                                                                                            farInp,
+                                                                                                                                                                                                            farExp
+                                                                                                                                                                                                          #)
+                                                                                                                                                                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                                                                          else
+                                                                                                                                                            let _ = "choicesBranch.else"
+                                                                                                                                                             in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                                                                 in let _ = "pushValue"
+                                                                                                                                     in let _ = "comment: satisfy Parsers.Nandlang.nandStringLetter"
+                                                                                                                                         in let _ = "checkHorizon.oldCheck: checkedHorizon=4"
+                                                                                                                                             in let _ = "checkToken"
+                                                                                                                                                 in let !(#
+                                                                                                                                                           c,
+                                                                                                                                                           cs
+                                                                                                                                                           #) = readNext cs
+                                                                                                                                                     in if Parsers.Nandlang.nandStringLetter c
+                                                                                                                                                          then
+                                                                                                                                                            let _ = "lift2Value checkedHorizon=3"
+                                                                                                                                                             in name
+                                                                                                                                                                  ( let _ = "onReturn"
+                                                                                                                                                                     in \farInp farExp v (!inp) ->
+                                                                                                                                                                          let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                           in let _ = "commit"
+                                                                                                                                                                               in let _ = "resume"
+                                                                                                                                                                                   in join
+                                                                                                                                                                                        farInp
+                                                                                                                                                                                        farExp
+                                                                                                                                                                                        ( let _ = "resume.genCode"
+                                                                                                                                                                                           in v
+                                                                                                                                                                                        )
+                                                                                                                                                                                        inp
+                                                                                                                                                                  )
+                                                                                                                                                                  cs
+                                                                                                                                                                  Data.Map.Internal.Tip
+                                                                                                                                                          else
+                                                                                                                                                            let _ = "checkToken.fail"
+                                                                                                                                                             in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                                                                  else
+                                                                                                                    let _ = "checkToken.fail"
+                                                                                                                     in let failExp =
+                                                                                                                              Data.Set.Internal.Bin
+                                                                                                                                1
+                                                                                                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                    ( case inputToken of
+                                                                                                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '\''
+                                                                                                                                    )
+                                                                                                                                )
+                                                                                                                                Data.Set.Internal.Tip
+                                                                                                                                Data.Set.Internal.Tip
+                                                                                                                         in let (#
+                                                                                                                                  farInp,
+                                                                                                                                  farExp
+                                                                                                                                  #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                    GHC.Types.LT ->
+                                                                                                                                      (#
+                                                                                                                                        inp,
+                                                                                                                                        failExp
+                                                                                                                                      #)
+                                                                                                                                    GHC.Types.EQ ->
+                                                                                                                                      (#
+                                                                                                                                        farInp,
+                                                                                                                                        failExp GHC.Base.<> farExp
+                                                                                                                                      #)
+                                                                                                                                    GHC.Types.GT ->
+                                                                                                                                      (#
+                                                                                                                                        farInp,
+                                                                                                                                        farExp
+                                                                                                                                      #)
+                                                                                                                             in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                      else
+                                                                                                        let _ = "checkHorizon.newCheck.fail"
+                                                                                                         in let failExp =
+                                                                                                                  Data.Set.Internal.Bin
+                                                                                                                    1
+                                                                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                        ( case inputToken of
+                                                                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 4
+                                                                                                                        )
+                                                                                                                    )
+                                                                                                                    Data.Set.Internal.Tip
+                                                                                                                    Data.Set.Internal.Tip
+                                                                                                             in let (#
+                                                                                                                      farInp,
+                                                                                                                      farExp
+                                                                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                        GHC.Types.LT ->
+                                                                                                                          (#
+                                                                                                                            inp,
+                                                                                                                            failExp
+                                                                                                                          #)
+                                                                                                                        GHC.Types.EQ ->
+                                                                                                                          (#
+                                                                                                                            farInp,
+                                                                                                                            failExp GHC.Base.<> farExp
+                                                                                                                          #)
+                                                                                                                        GHC.Types.GT ->
+                                                                                                                          (#
+                                                                                                                            farInp,
+                                                                                                                            farExp
+                                                                                                                          #)
+                                                                                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                  else
+                                                                    let _ = "choicesBranch.else"
+                                                                     in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure callerOnExceptionStackByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                         in let _ = "pushValue"
+                                             in let join = \farInp farExp v (!inp) ->
+                                                      let _ = "lift2Value checkedHorizon=0"
+                                                       in name
+                                                            ( let _ = "onReturn"
+                                                               in \farInp farExp v (!inp) ->
+                                                                    let _ = "lift2Value checkedHorizon=0"
+                                                                     in let _ = "commit"
+                                                                         in let _ = "resume"
+                                                                             in callerOnReturn
+                                                                                  farInp
+                                                                                  farExp
+                                                                                  ( let _ = "resume.genCode"
+                                                                                     in v
+                                                                                  )
+                                                                                  inp
+                                                            )
+                                                            inp
+                                                            (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure onException Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                 in let _ = "catch ExceptionFailure checkedHorizon=0"
+                                                     in let onException =
+                                                              let _ = "onException"
+                                                               in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                    let _ = "comment: raiseAgainIfConsumed"
+                                                                     in let _ = "saveInput checkedHorizon=0"
+                                                                         in let _ = "lift2Value checkedHorizon=0"
+                                                                             in if ( \( Data.Text.Internal.Text
+                                                                                          _
+                                                                                          i
+                                                                                          _
+                                                                                        )
+                                                                                      ( Data.Text.Internal.Text
+                                                                                          _
+                                                                                          j
+                                                                                          _
+                                                                                        ) -> i GHC.Classes.== j
+                                                                                   )
+                                                                                  callerInput
+                                                                                  failInp
+                                                                                  then
+                                                                                    let _ = "choicesBranch checkedHorizon=0"
+                                                                                     in let _ = "pushValue"
+                                                                                         in let _ = "comment: satisfy ((GHC.Classes.==) '1')"
+                                                                                             in let inp = failInp
+                                                                                                 in let readFail = onException
+                                                                                                     in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=2"
+                                                                                                         in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 inp)
+                                                                                                              then
+                                                                                                                let _ = "checkToken"
+                                                                                                                 in let !(#
+                                                                                                                           c,
+                                                                                                                           cs
+                                                                                                                           #) = readNext inp
+                                                                                                                     in if (GHC.Classes.==) '1' c
+                                                                                                                          then
+                                                                                                                            let _ = "lift2Value checkedHorizon=2"
+                                                                                                                             in let _ = "resume"
+                                                                                                                                 in join
+                                                                                                                                      farInp
+                                                                                                                                      farExp
+                                                                                                                                      ( let _ = "resume.genCode"
+                                                                                                                                         in '1'
+                                                                                                                                      )
+                                                                                                                                      cs
+                                                                                                                          else
+                                                                                                                            let _ = "checkToken.fail"
+                                                                                                                             in let failExp =
+                                                                                                                                      Data.Set.Internal.Bin
+                                                                                                                                        1
+                                                                                                                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                            ( case inputToken of
+                                                                                                                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '1'
+                                                                                                                                            )
+                                                                                                                                        )
+                                                                                                                                        Data.Set.Internal.Tip
+                                                                                                                                        Data.Set.Internal.Tip
+                                                                                                                                 in let (#
+                                                                                                                                          farInp,
+                                                                                                                                          farExp
+                                                                                                                                          #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                            GHC.Types.LT ->
+                                                                                                                                              (#
+                                                                                                                                                inp,
+                                                                                                                                                failExp
+                                                                                                                                              #)
+                                                                                                                                            GHC.Types.EQ ->
+                                                                                                                                              (#
+                                                                                                                                                farInp,
+                                                                                                                                                failExp GHC.Base.<> farExp
+                                                                                                                                              #)
+                                                                                                                                            GHC.Types.GT ->
+                                                                                                                                              (#
+                                                                                                                                                farInp,
+                                                                                                                                                farExp
+                                                                                                                                              #)
+                                                                                                                                     in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                              else
+                                                                                                                let _ = "checkHorizon.newCheck.fail"
+                                                                                                                 in let failExp =
+                                                                                                                          Data.Set.Internal.Bin
+                                                                                                                            1
+                                                                                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                ( case inputToken of
+                                                                                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
+                                                                                                                                )
+                                                                                                                            )
+                                                                                                                            Data.Set.Internal.Tip
+                                                                                                                            Data.Set.Internal.Tip
+                                                                                                                     in let (#
+                                                                                                                              farInp,
+                                                                                                                              farExp
+                                                                                                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                GHC.Types.LT ->
+                                                                                                                                  (#
+                                                                                                                                    inp,
+                                                                                                                                    failExp
+                                                                                                                                  #)
+                                                                                                                                GHC.Types.EQ ->
+                                                                                                                                  (#
+                                                                                                                                    farInp,
+                                                                                                                                    failExp GHC.Base.<> farExp
+                                                                                                                                  #)
+                                                                                                                                GHC.Types.GT ->
+                                                                                                                                  (#
+                                                                                                                                    farInp,
+                                                                                                                                    farExp
+                                                                                                                                  #)
+                                                                                                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                  else
+                                                                                    let _ = "choicesBranch.else"
+                                                                                     in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                         in let _ = "pushValue"
+                                                             in let _ = "comment: satisfy ((GHC.Classes.==) '0')"
+                                                                 in let inp = callerInput
+                                                                     in let readFail = onException
+                                                                         in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=2"
+                                                                             in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 inp)
+                                                                                  then
+                                                                                    let _ = "checkToken"
+                                                                                     in let !(#
+                                                                                               c,
+                                                                                               cs
+                                                                                               #) = readNext inp
+                                                                                         in if (GHC.Classes.==) '0' c
+                                                                                              then
+                                                                                                let _ = "lift2Value checkedHorizon=2"
+                                                                                                 in let _ = "commit"
+                                                                                                     in let _ = "resume"
+                                                                                                         in join
+                                                                                                              init
+                                                                                                              Data.Set.Internal.empty
+                                                                                                              ( let _ = "resume.genCode"
+                                                                                                                 in '0'
+                                                                                                              )
+                                                                                                              cs
+                                                                                              else
+                                                                                                let _ = "checkToken.fail"
+                                                                                                 in let failExp =
+                                                                                                          Data.Set.Internal.Bin
+                                                                                                            1
+                                                                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                ( case inputToken of
+                                                                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '0'
+                                                                                                                )
+                                                                                                            )
+                                                                                                            Data.Set.Internal.Tip
+                                                                                                            Data.Set.Internal.Tip
+                                                                                                     in let (#
+                                                                                                              farInp,
+                                                                                                              farExp
+                                                                                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                                                GHC.Types.LT ->
+                                                                                                                  (#
+                                                                                                                    inp,
+                                                                                                                    failExp
+                                                                                                                  #)
+                                                                                                                GHC.Types.EQ ->
+                                                                                                                  (#
+                                                                                                                    init,
+                                                                                                                    failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                                                  #)
+                                                                                                                GHC.Types.GT ->
+                                                                                                                  (#
+                                                                                                                    init,
+                                                                                                                    Data.Set.Internal.empty
+                                                                                                                  #)
+                                                                                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                  else
+                                                                                    let _ = "checkHorizon.newCheck.fail"
+                                                                                     in let failExp =
+                                                                                              Data.Set.Internal.Bin
+                                                                                                1
+                                                                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                    ( case inputToken of
+                                                                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
+                                                                                                    )
+                                                                                                )
+                                                                                                Data.Set.Internal.Tip
+                                                                                                Data.Set.Internal.Tip
+                                                                                         in let (#
+                                                                                                  farInp,
+                                                                                                  farExp
+                                                                                                  #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                                    GHC.Types.LT ->
+                                                                                                      (#
+                                                                                                        inp,
+                                                                                                        failExp
+                                                                                                      #)
+                                                                                                    GHC.Types.EQ ->
+                                                                                                      (#
+                                                                                                        init,
+                                                                                                        failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                                      #)
+                                                                                                    GHC.Types.GT ->
+                                                                                                      (#
+                                                                                                        init,
+                                                                                                        Data.Set.Internal.empty
+                                                                                                      #)
+                                                                                             in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                  name = \(!callerOnReturn) (!callerInput) (!callerOnExceptionStackByLabel) ->
+                                    let _ = "catch ExceptionFailure checkedHorizon=0"
+                                     in let onException =
+                                              let _ = "onException"
+                                               in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                    let _ = "comment: raiseAgainIfConsumed"
+                                                     in let _ = "saveInput checkedHorizon=0"
+                                                         in let _ = "lift2Value checkedHorizon=0"
+                                                             in if ( \( Data.Text.Internal.Text
+                                                                          _
+                                                                          i
+                                                                          _
+                                                                        )
+                                                                      ( Data.Text.Internal.Text
+                                                                          _
+                                                                          j
+                                                                          _
+                                                                        ) -> i GHC.Classes.== j
+                                                                   )
+                                                                  callerInput
+                                                                  failInp
+                                                                  then
+                                                                    let _ = "choicesBranch checkedHorizon=0"
+                                                                     in let _ = "jump"
+                                                                         in name callerOnReturn failInp Data.Map.Internal.Tip
+                                                                  else
+                                                                    let _ = "choicesBranch.else"
+                                                                     in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure callerOnExceptionStackByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                         in let _ = "pushValue"
+                                             in name
+                                                  ( let _ = "onReturn"
+                                                     in \farInp farExp v (!inp) ->
+                                                          let _ = "lift2Value checkedHorizon=0"
+                                                           in let _ = "pushValue"
+                                                               in do
+                                                                    let dupv = \x -> x
+                                                                    reg <- GHC.STRef.newSTRef dupv
+                                                                    let _ = "iter"
+                                                                     in let onException loopInput =
+                                                                              let _ = "onException"
+                                                                               in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                    let _ = "comment: raiseAgainIfConsumed"
+                                                                                     in let _ = "saveInput checkedHorizon=0"
+                                                                                         in let _ = "lift2Value checkedHorizon=0"
+                                                                                             in if ( \( Data.Text.Internal.Text
+                                                                                                          _
+                                                                                                          i
+                                                                                                          _
+                                                                                                        )
+                                                                                                      ( Data.Text.Internal.Text
+                                                                                                          _
+                                                                                                          j
+                                                                                                          _
+                                                                                                        ) -> i GHC.Classes.== j
+                                                                                                   )
+                                                                                                  loopInput
+                                                                                                  failInp
+                                                                                                  then
+                                                                                                    let _ = "choicesBranch checkedHorizon=0"
+                                                                                                     in do
+                                                                                                          sr <- GHC.STRef.readSTRef reg
+                                                                                                          name
+                                                                                                            ( let _ = "onReturn"
+                                                                                                               in \farInp farExp v (!inp) ->
+                                                                                                                    let _ = "lift2Value checkedHorizon=0"
+                                                                                                                     in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                         in name
+                                                                                                                              ( let _ = "onReturn"
+                                                                                                                                 in \farInp farExp v (!inp) ->
+                                                                                                                                      let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                       in let _ = "commit"
+                                                                                                                                           in let _ = "resume"
+                                                                                                                                               in callerOnReturn
+                                                                                                                                                    farInp
+                                                                                                                                                    farExp
+                                                                                                                                                    ( let _ = "resume.genCode"
+                                                                                                                                                       in GHC.Tuple . ()
+                                                                                                                                                    )
+                                                                                                                                                    inp
+                                                                                                                              )
+                                                                                                                              inp
+                                                                                                                              Data.Map.Internal.Tip
+                                                                                                            )
+                                                                                                            failInp
+                                                                                                            Data.Map.Internal.Tip
+                                                                                                  else
+                                                                                                    let _ = "choicesBranch.else"
+                                                                                                     in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                            loop = \_callerOnReturn callerInput callerOnExceptionStackByLabel ->
+                                                                              let _ = "pushValue"
+                                                                               in name
+                                                                                    ( let _ = "onReturn"
+                                                                                       in \farInp farExp v (!inp) ->
+                                                                                            let _ = "lift2Value checkedHorizon=0"
+                                                                                             in name
+                                                                                                  ( let _ = "onReturn"
+                                                                                                     in \farInp farExp v (!inp) ->
+                                                                                                          let _ = "lift2Value checkedHorizon=0"
+                                                                                                           in name
+                                                                                                                ( let _ = "onReturn"
+                                                                                                                   in \farInp farExp v (!inp) ->
+                                                                                                                        let _ = "lift2Value checkedHorizon=0"
+                                                                                                                         in do
+                                                                                                                              sr <- GHC.STRef.readSTRef reg
+                                                                                                                              let _ = "lift2Value checkedHorizon=0"
+                                                                                                                               in do
+                                                                                                                                    let dupv = v v sr
+                                                                                                                                    GHC.STRef.writeSTRef reg dupv
+                                                                                                                                    let _ = "jump"
+                                                                                                                                     in loop (GHC.Err.error "invalid onReturn") inp (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (onException callerInput) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                )
+                                                                                                                inp
+                                                                                                                (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (onException callerInput) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                  )
+                                                                                                  inp
+                                                                                                  (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (onException callerInput) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                    )
+                                                                                    callerInput
+                                                                                    Data.Map.Internal.Tip
+                                                                         in let _ = "jump"
+                                                                             in loop callerOnReturn inp (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure onException Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                  )
+                                                  callerInput
+                                                  (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure onException Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                  name = \(!callerOnReturn) (!callerInput) (!callerOnExceptionStackByLabel) ->
+                                    let _ = "comment: 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))))))))))"
+                                     in let inp = callerInput
+                                         in let readFail = Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure callerOnExceptionStackByLabel
+                                             in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=1"
+                                                 in if readMore inp
+                                                      then
+                                                        let _ = "checkToken"
+                                                         in let !(#
+                                                                   c,
+                                                                   cs
+                                                                   #) = readNext inp
+                                                             in if (\t -> ('0' GHC.Classes.== t) GHC.Classes.|| (('1' GHC.Classes.== t) GHC.Classes.|| (('2' GHC.Classes.== t) GHC.Classes.|| (('3' GHC.Classes.== t) GHC.Classes.|| (('4' GHC.Classes.== t) GHC.Classes.|| (('5' GHC.Classes.== t) GHC.Classes.|| (('6' GHC.Classes.== t) GHC.Classes.|| (('7' GHC.Classes.== t) GHC.Classes.|| (('8' GHC.Classes.== t) GHC.Classes.|| (('9' GHC.Classes.== t) GHC.Classes.|| GHC.Types.False)))))))))) c
+                                                                  then
+                                                                    let _ = "resume"
+                                                                     in callerOnReturn
+                                                                          init
+                                                                          Data.Set.Internal.empty
+                                                                          ( let _ = "resume.genCode"
+                                                                             in c
+                                                                          )
+                                                                          cs
+                                                                  else
+                                                                    let _ = "checkToken.fail"
+                                                                     in let failExp =
+                                                                              Data.Set.Internal.Bin
+                                                                                10
+                                                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                    ( case inputToken of
+                                                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '3'
+                                                                                    )
+                                                                                )
+                                                                                ( Data.Set.Internal.Bin
+                                                                                    3
+                                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                        ( case inputToken of
+                                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '1'
+                                                                                        )
+                                                                                    )
+                                                                                    ( Data.Set.Internal.Bin
+                                                                                        1
+                                                                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                            ( case inputToken of
+                                                                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '0'
+                                                                                            )
+                                                                                        )
+                                                                                        Data.Set.Internal.Tip
+                                                                                        Data.Set.Internal.Tip
+                                                                                    )
+                                                                                    ( Data.Set.Internal.Bin
+                                                                                        1
+                                                                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                            ( case inputToken of
+                                                                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '2'
+                                                                                            )
+                                                                                        )
+                                                                                        Data.Set.Internal.Tip
+                                                                                        Data.Set.Internal.Tip
+                                                                                    )
+                                                                                )
+                                                                                ( Data.Set.Internal.Bin
+                                                                                    6
+                                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                        ( case inputToken of
+                                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '7'
+                                                                                        )
+                                                                                    )
+                                                                                    ( Data.Set.Internal.Bin
+                                                                                        3
+                                                                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                            ( case inputToken of
+                                                                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '5'
+                                                                                            )
+                                                                                        )
+                                                                                        ( Data.Set.Internal.Bin
+                                                                                            1
+                                                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                ( case inputToken of
+                                                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '4'
+                                                                                                )
+                                                                                            )
+                                                                                            Data.Set.Internal.Tip
+                                                                                            Data.Set.Internal.Tip
+                                                                                        )
+                                                                                        ( Data.Set.Internal.Bin
+                                                                                            1
+                                                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                ( case inputToken of
+                                                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '6'
+                                                                                                )
+                                                                                            )
+                                                                                            Data.Set.Internal.Tip
+                                                                                            Data.Set.Internal.Tip
+                                                                                        )
+                                                                                    )
+                                                                                    ( Data.Set.Internal.Bin
+                                                                                        2
+                                                                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                            ( case inputToken of
+                                                                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '8'
+                                                                                            )
+                                                                                        )
+                                                                                        Data.Set.Internal.Tip
+                                                                                        ( Data.Set.Internal.Bin
+                                                                                            1
+                                                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                ( case inputToken of
+                                                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '9'
+                                                                                                )
+                                                                                            )
+                                                                                            Data.Set.Internal.Tip
+                                                                                            Data.Set.Internal.Tip
+                                                                                        )
+                                                                                    )
+                                                                                )
+                                                                         in let (#
+                                                                                  farInp,
+                                                                                  farExp
+                                                                                  #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                    GHC.Types.LT ->
+                                                                                      (#
+                                                                                        inp,
+                                                                                        failExp
+                                                                                      #)
+                                                                                    GHC.Types.EQ ->
+                                                                                      (#
+                                                                                        init,
+                                                                                        failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                      #)
+                                                                                    GHC.Types.GT ->
+                                                                                      (#
+                                                                                        init,
+                                                                                        Data.Set.Internal.empty
+                                                                                      #)
+                                                                             in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                      else
+                                                        let _ = "checkHorizon.newCheck.fail"
+                                                         in let failExp =
+                                                                  Data.Set.Internal.Bin
+                                                                    1
+                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                        ( case inputToken of
+                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
+                                                                        )
+                                                                    )
+                                                                    Data.Set.Internal.Tip
+                                                                    Data.Set.Internal.Tip
+                                                             in let (#
+                                                                      farInp,
+                                                                      farExp
+                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                        GHC.Types.LT ->
+                                                                          (#
+                                                                            inp,
+                                                                            failExp
+                                                                          #)
+                                                                        GHC.Types.EQ ->
+                                                                          (#
+                                                                            init,
+                                                                            failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                          #)
+                                                                        GHC.Types.GT ->
+                                                                          (#
+                                                                            init,
+                                                                            Data.Set.Internal.empty
+                                                                          #)
+                                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                  name = \(!callerOnReturn) (!callerInput) (!callerOnExceptionStackByLabel) ->
+                                    let _ = "pushValue"
+                                     in name
+                                          ( let _ = "onReturn"
+                                             in \farInp farExp v (!inp) ->
+                                                  let _ = "lift2Value checkedHorizon=0"
+                                                   in let join = \farInp farExp v (!inp) ->
+                                                            let _ = "lift2Value checkedHorizon=0"
+                                                             in let _ = "resume"
+                                                                 in callerOnReturn
+                                                                      farInp
+                                                                      farExp
+                                                                      ( let _ = "resume.genCode"
+                                                                         in v
+                                                                      )
+                                                                      inp
+                                                       in let _ = "catch ExceptionFailure checkedHorizon=0"
+                                                           in let onException =
+                                                                    let _ = "onException"
+                                                                     in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                          let _ = "comment: raiseAgainIfConsumed"
+                                                                           in let _ = "saveInput checkedHorizon=0"
+                                                                               in let _ = "lift2Value checkedHorizon=0"
+                                                                                   in if ( \( Data.Text.Internal.Text
+                                                                                                _
+                                                                                                i
+                                                                                                _
+                                                                                              )
+                                                                                            ( Data.Text.Internal.Text
+                                                                                                _
+                                                                                                j
+                                                                                                _
+                                                                                              ) -> i GHC.Classes.== j
+                                                                                         )
+                                                                                        inp
+                                                                                        failInp
+                                                                                        then
+                                                                                          let _ = "choicesBranch checkedHorizon=0"
+                                                                                           in name
+                                                                                                ( let _ = "onReturn"
+                                                                                                   in \farInp farExp v (!inp) ->
+                                                                                                        let _ = "resume"
+                                                                                                         in join
+                                                                                                              farInp
+                                                                                                              farExp
+                                                                                                              ( let _ = "resume.genCode"
+                                                                                                                 in v
+                                                                                                              )
+                                                                                                              inp
+                                                                                                )
+                                                                                                failInp
+                                                                                                Data.Map.Internal.Tip
+                                                                                        else
+                                                                                          let _ = "choicesBranch.else"
+                                                                                           in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure callerOnExceptionStackByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                               in let _ = "pushValue"
+                                                                   in name
+                                                                        ( let _ = "onReturn"
+                                                                           in \farInp farExp v (!inp) ->
+                                                                                let _ = "lift2Value checkedHorizon=0"
+                                                                                 in let _ = "commit"
+                                                                                     in let _ = "resume"
+                                                                                         in join
+                                                                                              farInp
+                                                                                              farExp
+                                                                                              ( let _ = "resume.genCode"
+                                                                                                 in GHC.Tuple . ()
+                                                                                              )
+                                                                                              inp
+                                                                        )
+                                                                        inp
+                                                                        (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure onException Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                          )
+                                          callerInput
+                                          (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure callerOnExceptionStackByLabel) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                  name = \(!callerOnReturn) (!callerInput) (!callerOnExceptionStackByLabel) ->
+                                    let _ = "pushValue"
+                                     in name
+                                          ( let _ = "onReturn"
+                                             in \farInp farExp v (!inp) ->
+                                                  let _ = "lift2Value checkedHorizon=0"
+                                                   in let _ = "pushValue"
+                                                       in do
+                                                            let dupv = \x -> x
+                                                            reg <- GHC.STRef.newSTRef dupv
+                                                            let _ = "iter"
+                                                             in let onException loopInput =
+                                                                      let _ = "onException"
+                                                                       in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                            let _ = "comment: raiseAgainIfConsumed"
+                                                                             in let _ = "saveInput checkedHorizon=0"
+                                                                                 in let _ = "lift2Value checkedHorizon=0"
+                                                                                     in if ( \( Data.Text.Internal.Text
+                                                                                                  _
+                                                                                                  i
+                                                                                                  _
+                                                                                                )
+                                                                                              ( Data.Text.Internal.Text
+                                                                                                  _
+                                                                                                  j
+                                                                                                  _
+                                                                                                ) -> i GHC.Classes.== j
+                                                                                           )
+                                                                                          loopInput
+                                                                                          failInp
+                                                                                          then
+                                                                                            let _ = "choicesBranch checkedHorizon=0"
+                                                                                             in do
+                                                                                                  sr <- GHC.STRef.readSTRef reg
+                                                                                                  name
+                                                                                                    ( let _ = "onReturn"
+                                                                                                       in \farInp farExp v (!inp) ->
+                                                                                                            let _ = "lift2Value checkedHorizon=0"
+                                                                                                             in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                 in name
+                                                                                                                      ( let _ = "onReturn"
+                                                                                                                         in \farInp farExp v (!inp) ->
+                                                                                                                              let _ = "lift2Value checkedHorizon=0"
+                                                                                                                               in let _ = "resume"
+                                                                                                                                   in callerOnReturn
+                                                                                                                                        farInp
+                                                                                                                                        farExp
+                                                                                                                                        ( let _ = "resume.genCode"
+                                                                                                                                           in v
+                                                                                                                                        )
+                                                                                                                                        inp
+                                                                                                                      )
+                                                                                                                      inp
+                                                                                                                      Data.Map.Internal.Tip
+                                                                                                    )
+                                                                                                    failInp
+                                                                                                    Data.Map.Internal.Tip
+                                                                                          else
+                                                                                            let _ = "choicesBranch.else"
+                                                                                             in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure callerOnExceptionStackByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                    loop = \_callerOnReturn callerInput callerOnExceptionStackByLabel ->
+                                                                      let _ = "pushValue"
+                                                                       in let _ = "comment: satisfy ((GHC.Classes.==) '!')"
+                                                                           in let inp = callerInput
+                                                                               in let readFail = onException callerInput
+                                                                                   in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=4"
+                                                                                       in if readMore (Symantic.Parser.Machine.Input.shiftRightText 3 inp)
+                                                                                            then
+                                                                                              let _ = "checkToken"
+                                                                                               in let !(#
+                                                                                                         c,
+                                                                                                         cs
+                                                                                                         #) = readNext inp
+                                                                                                   in if (GHC.Classes.==) '!' c
+                                                                                                        then
+                                                                                                          let _ = "lift2Value checkedHorizon=4"
+                                                                                                           in name
+                                                                                                                ( let _ = "onReturn"
+                                                                                                                   in \farInp farExp v (!inp) ->
+                                                                                                                        let _ = "lift2Value checkedHorizon=0"
+                                                                                                                         in name
+                                                                                                                              ( let _ = "onReturn"
+                                                                                                                                 in \farInp farExp v (!inp) ->
+                                                                                                                                      let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                       in do
+                                                                                                                                            sr <- GHC.STRef.readSTRef reg
+                                                                                                                                            let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                             in do
+                                                                                                                                                  let dupv = sr
+                                                                                                                                                  GHC.STRef.writeSTRef reg dupv
+                                                                                                                                                  let _ = "jump"
+                                                                                                                                                   in loop (GHC.Err.error "invalid onReturn") inp (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                              )
+                                                                                                                              inp
+                                                                                                                              (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                )
+                                                                                                                cs
+                                                                                                                (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                        else
+                                                                                                          let _ = "checkToken.fail"
+                                                                                                           in let failExp =
+                                                                                                                    Data.Set.Internal.Bin
+                                                                                                                      1
+                                                                                                                      ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                          ( case inputToken of
+                                                                                                                              (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '!'
+                                                                                                                          )
+                                                                                                                      )
+                                                                                                                      Data.Set.Internal.Tip
+                                                                                                                      Data.Set.Internal.Tip
+                                                                                                               in let (#
+                                                                                                                        farInp,
+                                                                                                                        farExp
+                                                                                                                        #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                          GHC.Types.LT ->
+                                                                                                                            (#
+                                                                                                                              inp,
+                                                                                                                              failExp
+                                                                                                                            #)
+                                                                                                                          GHC.Types.EQ ->
+                                                                                                                            (#
+                                                                                                                              farInp,
+                                                                                                                              failExp GHC.Base.<> farExp
+                                                                                                                            #)
+                                                                                                                          GHC.Types.GT ->
+                                                                                                                            (#
+                                                                                                                              farInp,
+                                                                                                                              farExp
+                                                                                                                            #)
+                                                                                                                   in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                            else
+                                                                                              let _ = "checkHorizon.newCheck.fail"
+                                                                                               in let failExp =
+                                                                                                        Data.Set.Internal.Bin
+                                                                                                          1
+                                                                                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                              ( case inputToken of
+                                                                                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 4
+                                                                                                              )
+                                                                                                          )
+                                                                                                          Data.Set.Internal.Tip
+                                                                                                          Data.Set.Internal.Tip
+                                                                                                   in let (#
+                                                                                                            farInp,
+                                                                                                            farExp
+                                                                                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                              GHC.Types.LT ->
+                                                                                                                (#
+                                                                                                                  inp,
+                                                                                                                  failExp
+                                                                                                                #)
+                                                                                                              GHC.Types.EQ ->
+                                                                                                                (#
+                                                                                                                  farInp,
+                                                                                                                  failExp GHC.Base.<> farExp
+                                                                                                                #)
+                                                                                                              GHC.Types.GT ->
+                                                                                                                (#
+                                                                                                                  farInp,
+                                                                                                                  farExp
+                                                                                                                #)
+                                                                                                       in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                 in let _ = "jump"
+                                                                     in loop callerOnReturn inp (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure callerOnExceptionStackByLabel) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                          )
+                                          callerInput
+                                          (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure callerOnExceptionStackByLabel) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                  name = \(!callerOnReturn) (!callerInput) (!callerOnExceptionStackByLabel) ->
+                                    let _ = "pushValue"
+                                     in name
+                                          ( let _ = "onReturn"
+                                             in \farInp farExp v (!inp) ->
+                                                  let _ = "lift2Value checkedHorizon=0"
+                                                   in let _ = "pushValue"
+                                                       in do
+                                                            let dupv = \x -> x
+                                                            reg <- GHC.STRef.newSTRef dupv
+                                                            let _ = "iter"
+                                                             in let onException loopInput =
+                                                                      let _ = "onException"
+                                                                       in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                            let _ = "comment: raiseAgainIfConsumed"
+                                                                             in let _ = "saveInput checkedHorizon=0"
+                                                                                 in let _ = "lift2Value checkedHorizon=0"
+                                                                                     in if ( \( Data.Text.Internal.Text
+                                                                                                  _
+                                                                                                  i
+                                                                                                  _
+                                                                                                )
+                                                                                              ( Data.Text.Internal.Text
+                                                                                                  _
+                                                                                                  j
+                                                                                                  _
+                                                                                                ) -> i GHC.Classes.== j
+                                                                                           )
+                                                                                          loopInput
+                                                                                          failInp
+                                                                                          then
+                                                                                            let _ = "choicesBranch checkedHorizon=0"
+                                                                                             in do
+                                                                                                  sr <- GHC.STRef.readSTRef reg
+                                                                                                  let _ = "pushValue"
+                                                                                                   in let _ = "lift2Value checkedHorizon=0"
+                                                                                                       in let _ = "lift2Value checkedHorizon=0"
+                                                                                                           in let _ = "resume"
+                                                                                                               in callerOnReturn
+                                                                                                                    farInp
+                                                                                                                    farExp
+                                                                                                                    ( let _ = "resume.genCode"
+                                                                                                                       in GHC.Tuple . ()
+                                                                                                                    )
+                                                                                                                    failInp
+                                                                                          else
+                                                                                            let _ = "choicesBranch.else"
+                                                                                             in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure callerOnExceptionStackByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                    loop = \_callerOnReturn callerInput callerOnExceptionStackByLabel ->
+                                                                      let _ = "pushValue"
+                                                                       in name
+                                                                            ( let _ = "onReturn"
+                                                                               in \farInp farExp v (!inp) ->
+                                                                                    let _ = "lift2Value checkedHorizon=0"
+                                                                                     in do
+                                                                                          sr <- GHC.STRef.readSTRef reg
+                                                                                          let _ = "lift2Value checkedHorizon=0"
+                                                                                           in do
+                                                                                                let dupv = sr
+                                                                                                GHC.STRef.writeSTRef reg dupv
+                                                                                                let _ = "jump"
+                                                                                                 in loop (GHC.Err.error "invalid onReturn") inp (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (onException callerInput) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                            )
+                                                                            callerInput
+                                                                            (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (onException callerInput) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                 in let _ = "jump"
+                                                                     in loop callerOnReturn inp (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure callerOnExceptionStackByLabel) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                          )
+                                          callerInput
+                                          (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure callerOnExceptionStackByLabel) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                  name = \(!callerOnReturn) (!callerInput) (!callerOnExceptionStackByLabel) ->
+                                    let _ = "pushValue"
+                                     in let _ = "catch ExceptionFailure checkedHorizon=0"
+                                         in let onException =
+                                                  let _ = "onException"
+                                                   in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                        let _ = "loadInput checkedHorizon=0"
+                                                         in let _ = "checkHorizon.noCheck"
+                                                             in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure callerOnExceptionStackByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure callerInput farInp farExp
+                                             in let _ = "pushValue"
+                                                 in let _ = "comment: satisfy Parsers.Nandlang.nandIdentStart"
+                                                     in let inp = callerInput
+                                                         in let readFail = onException
+                                                             in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=2"
+                                                                 in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 inp)
+                                                                      then
+                                                                        let _ = "checkToken"
+                                                                         in let !(#
+                                                                                   c,
+                                                                                   cs
+                                                                                   #) = readNext inp
+                                                                             in if Parsers.Nandlang.nandIdentStart c
+                                                                                  then
+                                                                                    let _ = "lift2Value checkedHorizon=2"
+                                                                                     in let _ = "pushValue"
+                                                                                         in do
+                                                                                              let dupv = \x -> x
+                                                                                              reg <- GHC.STRef.newSTRef dupv
+                                                                                              let _ = "iter"
+                                                                                               in let onException loopInput =
+                                                                                                        let _ = "onException"
+                                                                                                         in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                                              let _ = "comment: raiseAgainIfConsumed"
+                                                                                                               in let _ = "saveInput checkedHorizon=0"
+                                                                                                                   in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                       in if ( \( Data.Text.Internal.Text
+                                                                                                                                    _
+                                                                                                                                    i
+                                                                                                                                    _
+                                                                                                                                  )
+                                                                                                                                ( Data.Text.Internal.Text
+                                                                                                                                    _
+                                                                                                                                    j
+                                                                                                                                    _
+                                                                                                                                  ) -> i GHC.Classes.== j
+                                                                                                                             )
+                                                                                                                            loopInput
+                                                                                                                            failInp
+                                                                                                                            then
+                                                                                                                              let _ = "choicesBranch checkedHorizon=0"
+                                                                                                                               in do
+                                                                                                                                    sr <- GHC.STRef.readSTRef reg
+                                                                                                                                    name
+                                                                                                                                      ( let _ = "onReturn"
+                                                                                                                                         in \farInp farExp v (!inp) ->
+                                                                                                                                              let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                               in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                   in name
+                                                                                                                                                        ( let _ = "onReturn"
+                                                                                                                                                           in \farInp farExp v (!inp) ->
+                                                                                                                                                                let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                 in let _ = "commit"
+                                                                                                                                                                     in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                         in name
+                                                                                                                                                                              ( let _ = "onReturn"
+                                                                                                                                                                                 in \farInp farExp v (!inp) ->
+                                                                                                                                                                                      let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                       in let _ = "resume"
+                                                                                                                                                                                           in callerOnReturn
+                                                                                                                                                                                                farInp
+                                                                                                                                                                                                farExp
+                                                                                                                                                                                                ( let _ = "resume.genCode"
+                                                                                                                                                                                                   in v
+                                                                                                                                                                                                )
+                                                                                                                                                                                                inp
+                                                                                                                                                                              )
+                                                                                                                                                                              inp
+                                                                                                                                                                              (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure callerOnExceptionStackByLabel) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                        )
+                                                                                                                                                        inp
+                                                                                                                                                        Data.Map.Internal.Tip
+                                                                                                                                      )
+                                                                                                                                      failInp
+                                                                                                                                      Data.Map.Internal.Tip
+                                                                                                                            else
+                                                                                                                              let _ = "choicesBranch.else"
+                                                                                                                               in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                                      loop = \_callerOnReturn callerInput callerOnExceptionStackByLabel ->
+                                                                                                        let _ = "pushValue"
+                                                                                                         in let _ = "comment: satisfy Parsers.Nandlang.nandIdentLetter"
+                                                                                                             in let inp = callerInput
+                                                                                                                 in let readFail = onException callerInput
+                                                                                                                     in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=1"
+                                                                                                                         in if readMore inp
+                                                                                                                              then
+                                                                                                                                let _ = "checkToken"
+                                                                                                                                 in let !(#
+                                                                                                                                           c,
+                                                                                                                                           cs
+                                                                                                                                           #) = readNext inp
+                                                                                                                                     in if Parsers.Nandlang.nandIdentLetter c
+                                                                                                                                          then
+                                                                                                                                            let _ = "lift2Value checkedHorizon=1"
+                                                                                                                                             in do
+                                                                                                                                                  sr <- GHC.STRef.readSTRef reg
+                                                                                                                                                  let _ = "lift2Value checkedHorizon=1"
+                                                                                                                                                   in do
+                                                                                                                                                        let dupv = sr
+                                                                                                                                                        GHC.STRef.writeSTRef reg dupv
+                                                                                                                                                        let _ = "jump"
+                                                                                                                                                         in loop (GHC.Err.error "invalid onReturn") cs (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                          else
+                                                                                                                                            let _ = "checkToken.fail"
+                                                                                                                                             in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp init Data.Set.Internal.empty
+                                                                                                                              else
+                                                                                                                                let _ = "checkHorizon.newCheck.fail"
+                                                                                                                                 in let failExp =
+                                                                                                                                          Data.Set.Internal.Bin
+                                                                                                                                            1
+                                                                                                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                ( case inputToken of
+                                                                                                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
+                                                                                                                                                )
+                                                                                                                                            )
+                                                                                                                                            Data.Set.Internal.Tip
+                                                                                                                                            Data.Set.Internal.Tip
+                                                                                                                                     in let (#
+                                                                                                                                              farInp,
+                                                                                                                                              farExp
+                                                                                                                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                                                                                GHC.Types.LT ->
+                                                                                                                                                  (#
+                                                                                                                                                    inp,
+                                                                                                                                                    failExp
+                                                                                                                                                  #)
+                                                                                                                                                GHC.Types.EQ ->
+                                                                                                                                                  (#
+                                                                                                                                                    init,
+                                                                                                                                                    failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                                                                                  #)
+                                                                                                                                                GHC.Types.GT ->
+                                                                                                                                                  (#
+                                                                                                                                                    init,
+                                                                                                                                                    Data.Set.Internal.empty
+                                                                                                                                                  #)
+                                                                                                                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                   in let _ = "jump"
+                                                                                                       in loop callerOnReturn cs (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                  else
+                                                                                    let _ = "checkToken.fail"
+                                                                                     in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp init Data.Set.Internal.empty
+                                                                      else
+                                                                        let _ = "checkHorizon.newCheck.fail"
+                                                                         in let failExp =
+                                                                                  Data.Set.Internal.Bin
+                                                                                    1
+                                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                        ( case inputToken of
+                                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
+                                                                                        )
+                                                                                    )
+                                                                                    Data.Set.Internal.Tip
+                                                                                    Data.Set.Internal.Tip
+                                                                             in let (#
+                                                                                      farInp,
+                                                                                      farExp
+                                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                        GHC.Types.LT ->
+                                                                                          (#
+                                                                                            inp,
+                                                                                            failExp
+                                                                                          #)
+                                                                                        GHC.Types.EQ ->
+                                                                                          (#
+                                                                                            init,
+                                                                                            failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                          #)
+                                                                                        GHC.Types.GT ->
+                                                                                          (#
+                                                                                            init,
+                                                                                            Data.Set.Internal.empty
+                                                                                          #)
+                                                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                  name = \(!callerOnReturn) (!callerInput) (!callerOnExceptionStackByLabel) ->
+                                    let _ = "pushValue"
+                                     in let _ = "comment: satisfy ((GHC.Classes.==) '(')"
+                                         in let inp = callerInput
+                                             in let readFail = Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure callerOnExceptionStackByLabel
+                                                 in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=2"
+                                                     in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 inp)
+                                                          then
+                                                            let _ = "checkToken"
+                                                             in let !(#
+                                                                       c,
+                                                                       cs
+                                                                       #) = readNext inp
+                                                                 in if (GHC.Classes.==) '(' c
+                                                                      then
+                                                                        let _ = "lift2Value checkedHorizon=2"
+                                                                         in name
+                                                                              ( let _ = "onReturn"
+                                                                                 in \farInp farExp v (!inp) ->
+                                                                                      let _ = "lift2Value checkedHorizon=0"
+                                                                                       in let _ = "resume"
+                                                                                           in callerOnReturn
+                                                                                                farInp
+                                                                                                farExp
+                                                                                                ( let _ = "resume.genCode"
+                                                                                                   in '('
+                                                                                                )
+                                                                                                inp
+                                                                              )
+                                                                              cs
+                                                                              (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                      else
+                                                                        let _ = "checkToken.fail"
+                                                                         in let failExp =
+                                                                                  Data.Set.Internal.Bin
+                                                                                    1
+                                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                        ( case inputToken of
+                                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '('
+                                                                                        )
+                                                                                    )
+                                                                                    Data.Set.Internal.Tip
+                                                                                    Data.Set.Internal.Tip
+                                                                             in let (#
+                                                                                      farInp,
+                                                                                      farExp
+                                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                        GHC.Types.LT ->
+                                                                                          (#
+                                                                                            inp,
+                                                                                            failExp
+                                                                                          #)
+                                                                                        GHC.Types.EQ ->
+                                                                                          (#
+                                                                                            init,
+                                                                                            failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                          #)
+                                                                                        GHC.Types.GT ->
+                                                                                          (#
+                                                                                            init,
+                                                                                            Data.Set.Internal.empty
+                                                                                          #)
+                                                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                          else
+                                                            let _ = "checkHorizon.newCheck.fail"
+                                                             in let failExp =
+                                                                      Data.Set.Internal.Bin
+                                                                        1
+                                                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                            ( case inputToken of
+                                                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
+                                                                            )
+                                                                        )
+                                                                        Data.Set.Internal.Tip
+                                                                        Data.Set.Internal.Tip
+                                                                 in let (#
+                                                                          farInp,
+                                                                          farExp
+                                                                          #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                            GHC.Types.LT ->
+                                                                              (#
+                                                                                inp,
+                                                                                failExp
+                                                                              #)
+                                                                            GHC.Types.EQ ->
+                                                                              (#
+                                                                                init,
+                                                                                failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                              #)
+                                                                            GHC.Types.GT ->
+                                                                              (#
+                                                                                init,
+                                                                                Data.Set.Internal.empty
+                                                                              #)
+                                                                     in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                  name = \(!callerOnReturn) (!callerInput) (!callerOnExceptionStackByLabel) ->
+                                    let _ = "pushValue"
+                                     in let _ = "comment: satisfy ((GHC.Classes.==) ')')"
+                                         in let inp = callerInput
+                                             in let readFail = Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure callerOnExceptionStackByLabel
+                                                 in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=2"
+                                                     in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 inp)
+                                                          then
+                                                            let _ = "checkToken"
+                                                             in let !(#
+                                                                       c,
+                                                                       cs
+                                                                       #) = readNext inp
+                                                                 in if (GHC.Classes.==) ')' c
+                                                                      then
+                                                                        let _ = "lift2Value checkedHorizon=2"
+                                                                         in name
+                                                                              ( let _ = "onReturn"
+                                                                                 in \farInp farExp v (!inp) ->
+                                                                                      let _ = "lift2Value checkedHorizon=0"
+                                                                                       in let _ = "resume"
+                                                                                           in callerOnReturn
+                                                                                                farInp
+                                                                                                farExp
+                                                                                                ( let _ = "resume.genCode"
+                                                                                                   in ')'
+                                                                                                )
+                                                                                                inp
+                                                                              )
+                                                                              cs
+                                                                              (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                      else
+                                                                        let _ = "checkToken.fail"
+                                                                         in let failExp =
+                                                                                  Data.Set.Internal.Bin
+                                                                                    1
+                                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                        ( case inputToken of
+                                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken ')'
+                                                                                        )
+                                                                                    )
+                                                                                    Data.Set.Internal.Tip
+                                                                                    Data.Set.Internal.Tip
+                                                                             in let (#
+                                                                                      farInp,
+                                                                                      farExp
+                                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                        GHC.Types.LT ->
+                                                                                          (#
+                                                                                            inp,
+                                                                                            failExp
+                                                                                          #)
+                                                                                        GHC.Types.EQ ->
+                                                                                          (#
+                                                                                            init,
+                                                                                            failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                          #)
+                                                                                        GHC.Types.GT ->
+                                                                                          (#
+                                                                                            init,
+                                                                                            Data.Set.Internal.empty
+                                                                                          #)
+                                                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                          else
+                                                            let _ = "checkHorizon.newCheck.fail"
+                                                             in let failExp =
+                                                                      Data.Set.Internal.Bin
+                                                                        1
+                                                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                            ( case inputToken of
+                                                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
+                                                                            )
+                                                                        )
+                                                                        Data.Set.Internal.Tip
+                                                                        Data.Set.Internal.Tip
+                                                                 in let (#
+                                                                          farInp,
+                                                                          farExp
+                                                                          #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                            GHC.Types.LT ->
+                                                                              (#
+                                                                                inp,
+                                                                                failExp
+                                                                              #)
+                                                                            GHC.Types.EQ ->
+                                                                              (#
+                                                                                init,
+                                                                                failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                              #)
+                                                                            GHC.Types.GT ->
+                                                                              (#
+                                                                                init,
+                                                                                Data.Set.Internal.empty
+                                                                              #)
+                                                                     in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                  name = \(!callerOnReturn) (!callerInput) (!callerOnExceptionStackByLabel) ->
+                                    let _ = "pushValue"
+                                     in let _ = "comment: satisfy ((GHC.Classes.==) ',')"
+                                         in let inp = callerInput
+                                             in let readFail = Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure callerOnExceptionStackByLabel
+                                                 in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=2"
+                                                     in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 inp)
+                                                          then
+                                                            let _ = "checkToken"
+                                                             in let !(#
+                                                                       c,
+                                                                       cs
+                                                                       #) = readNext inp
+                                                                 in if (GHC.Classes.==) ',' c
+                                                                      then
+                                                                        let _ = "lift2Value checkedHorizon=2"
+                                                                         in name
+                                                                              ( let _ = "onReturn"
+                                                                                 in \farInp farExp v (!inp) ->
+                                                                                      let _ = "lift2Value checkedHorizon=0"
+                                                                                       in let _ = "resume"
+                                                                                           in callerOnReturn
+                                                                                                farInp
+                                                                                                farExp
+                                                                                                ( let _ = "resume.genCode"
+                                                                                                   in ','
+                                                                                                )
+                                                                                                inp
+                                                                              )
+                                                                              cs
+                                                                              (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                      else
+                                                                        let _ = "checkToken.fail"
+                                                                         in let failExp =
+                                                                                  Data.Set.Internal.Bin
+                                                                                    1
+                                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                        ( case inputToken of
+                                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken ','
+                                                                                        )
+                                                                                    )
+                                                                                    Data.Set.Internal.Tip
+                                                                                    Data.Set.Internal.Tip
+                                                                             in let (#
+                                                                                      farInp,
+                                                                                      farExp
+                                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                        GHC.Types.LT ->
+                                                                                          (#
+                                                                                            inp,
+                                                                                            failExp
+                                                                                          #)
+                                                                                        GHC.Types.EQ ->
+                                                                                          (#
+                                                                                            init,
+                                                                                            failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                          #)
+                                                                                        GHC.Types.GT ->
+                                                                                          (#
+                                                                                            init,
+                                                                                            Data.Set.Internal.empty
+                                                                                          #)
+                                                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                          else
+                                                            let _ = "checkHorizon.newCheck.fail"
+                                                             in let failExp =
+                                                                      Data.Set.Internal.Bin
+                                                                        1
+                                                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                            ( case inputToken of
+                                                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
+                                                                            )
+                                                                        )
+                                                                        Data.Set.Internal.Tip
+                                                                        Data.Set.Internal.Tip
+                                                                 in let (#
+                                                                          farInp,
+                                                                          farExp
+                                                                          #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                            GHC.Types.LT ->
+                                                                              (#
+                                                                                inp,
+                                                                                failExp
+                                                                              #)
+                                                                            GHC.Types.EQ ->
+                                                                              (#
+                                                                                init,
+                                                                                failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                              #)
+                                                                            GHC.Types.GT ->
+                                                                              (#
+                                                                                init,
+                                                                                Data.Set.Internal.empty
+                                                                              #)
+                                                                     in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                  name = \(!callerOnReturn) (!callerInput) (!callerOnExceptionStackByLabel) ->
+                                    let _ = "pushValue"
+                                     in let _ = "comment: satisfy ((GHC.Classes.==) ';')"
+                                         in let inp = callerInput
+                                             in let readFail = Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure callerOnExceptionStackByLabel
+                                                 in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=2"
+                                                     in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 inp)
+                                                          then
+                                                            let _ = "checkToken"
+                                                             in let !(#
+                                                                       c,
+                                                                       cs
+                                                                       #) = readNext inp
+                                                                 in if (GHC.Classes.==) ';' c
+                                                                      then
+                                                                        let _ = "lift2Value checkedHorizon=2"
+                                                                         in name
+                                                                              ( let _ = "onReturn"
+                                                                                 in \farInp farExp v (!inp) ->
+                                                                                      let _ = "lift2Value checkedHorizon=0"
+                                                                                       in let _ = "resume"
+                                                                                           in callerOnReturn
+                                                                                                farInp
+                                                                                                farExp
+                                                                                                ( let _ = "resume.genCode"
+                                                                                                   in ';'
+                                                                                                )
+                                                                                                inp
+                                                                              )
+                                                                              cs
+                                                                              (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                      else
+                                                                        let _ = "checkToken.fail"
+                                                                         in let failExp =
+                                                                                  Data.Set.Internal.Bin
+                                                                                    1
+                                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                        ( case inputToken of
+                                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken ';'
+                                                                                        )
+                                                                                    )
+                                                                                    Data.Set.Internal.Tip
+                                                                                    Data.Set.Internal.Tip
+                                                                             in let (#
+                                                                                      farInp,
+                                                                                      farExp
+                                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                        GHC.Types.LT ->
+                                                                                          (#
+                                                                                            inp,
+                                                                                            failExp
+                                                                                          #)
+                                                                                        GHC.Types.EQ ->
+                                                                                          (#
+                                                                                            init,
+                                                                                            failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                          #)
+                                                                                        GHC.Types.GT ->
+                                                                                          (#
+                                                                                            init,
+                                                                                            Data.Set.Internal.empty
+                                                                                          #)
+                                                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                          else
+                                                            let _ = "checkHorizon.newCheck.fail"
+                                                             in let failExp =
+                                                                      Data.Set.Internal.Bin
+                                                                        1
+                                                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                            ( case inputToken of
+                                                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
+                                                                            )
+                                                                        )
+                                                                        Data.Set.Internal.Tip
+                                                                        Data.Set.Internal.Tip
+                                                                 in let (#
+                                                                          farInp,
+                                                                          farExp
+                                                                          #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                            GHC.Types.LT ->
+                                                                              (#
+                                                                                inp,
+                                                                                failExp
+                                                                              #)
+                                                                            GHC.Types.EQ ->
+                                                                              (#
+                                                                                init,
+                                                                                failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                              #)
+                                                                            GHC.Types.GT ->
+                                                                              (#
+                                                                                init,
+                                                                                Data.Set.Internal.empty
+                                                                              #)
+                                                                     in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                  name = \(!callerOnReturn) (!callerInput) (!callerOnExceptionStackByLabel) ->
+                                    let _ = "pushValue"
+                                     in let _ = "comment: satisfy ((GHC.Classes.==) '[')"
+                                         in let inp = callerInput
+                                             in let readFail = Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure callerOnExceptionStackByLabel
+                                                 in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=5"
+                                                     in if readMore (Symantic.Parser.Machine.Input.shiftRightText 4 inp)
+                                                          then
+                                                            let _ = "checkToken"
+                                                             in let !(#
+                                                                       c,
+                                                                       cs
+                                                                       #) = readNext inp
+                                                                 in if (GHC.Classes.==) '[' c
+                                                                      then
+                                                                        let _ = "lift2Value checkedHorizon=5"
+                                                                         in name
+                                                                              ( let _ = "onReturn"
+                                                                                 in \farInp farExp v (!inp) ->
+                                                                                      let _ = "lift2Value checkedHorizon=0"
+                                                                                       in name
+                                                                                            ( let _ = "onReturn"
+                                                                                               in \farInp farExp v (!inp) ->
+                                                                                                    let _ = "lift2Value checkedHorizon=0"
+                                                                                                     in let _ = "pushValue"
+                                                                                                         in do
+                                                                                                              let dupv = \x -> x
+                                                                                                              reg <- GHC.STRef.newSTRef dupv
+                                                                                                              let _ = "iter"
+                                                                                                               in let onException loopInput =
+                                                                                                                        let _ = "onException"
+                                                                                                                         in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                                                              let _ = "comment: raiseAgainIfConsumed"
+                                                                                                                               in let _ = "saveInput checkedHorizon=0"
+                                                                                                                                   in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                       in if ( \( Data.Text.Internal.Text
+                                                                                                                                                    _
+                                                                                                                                                    i
+                                                                                                                                                    _
+                                                                                                                                                  )
+                                                                                                                                                ( Data.Text.Internal.Text
+                                                                                                                                                    _
+                                                                                                                                                    j
+                                                                                                                                                    _
+                                                                                                                                                  ) -> i GHC.Classes.== j
+                                                                                                                                             )
+                                                                                                                                            loopInput
+                                                                                                                                            failInp
+                                                                                                                                            then
+                                                                                                                                              let _ = "choicesBranch checkedHorizon=0"
+                                                                                                                                               in do
+                                                                                                                                                    sr <- GHC.STRef.readSTRef reg
+                                                                                                                                                    let _ = "pushValue"
+                                                                                                                                                     in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                         in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                             in let _ = "comment: satisfy ((GHC.Classes.==) ']')"
+                                                                                                                                                                 in let inp = failInp
+                                                                                                                                                                     in let readFail = readFail
+                                                                                                                                                                         in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=2"
+                                                                                                                                                                             in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 inp)
+                                                                                                                                                                                  then
+                                                                                                                                                                                    let _ = "checkToken"
+                                                                                                                                                                                     in let !(#
+                                                                                                                                                                                               c,
+                                                                                                                                                                                               cs
+                                                                                                                                                                                               #) = readNext inp
+                                                                                                                                                                                         in if (GHC.Classes.==) ']' c
+                                                                                                                                                                                              then
+                                                                                                                                                                                                let _ = "lift2Value checkedHorizon=2"
+                                                                                                                                                                                                 in name
+                                                                                                                                                                                                      ( let _ = "onReturn"
+                                                                                                                                                                                                         in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                              let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                               in let _ = "resume"
+                                                                                                                                                                                                                   in callerOnReturn
+                                                                                                                                                                                                                        farInp
+                                                                                                                                                                                                                        farExp
+                                                                                                                                                                                                                        ( let _ = "resume.genCode"
+                                                                                                                                                                                                                           in GHC.Tuple . ()
+                                                                                                                                                                                                                        )
+                                                                                                                                                                                                                        inp
+                                                                                                                                                                                                      )
+                                                                                                                                                                                                      cs
+                                                                                                                                                                                                      (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                                              else
+                                                                                                                                                                                                let _ = "checkToken.fail"
+                                                                                                                                                                                                 in let failExp =
+                                                                                                                                                                                                          Data.Set.Internal.Bin
+                                                                                                                                                                                                            1
+                                                                                                                                                                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                                ( case inputToken of
+                                                                                                                                                                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken ']'
+                                                                                                                                                                                                                )
+                                                                                                                                                                                                            )
+                                                                                                                                                                                                            Data.Set.Internal.Tip
+                                                                                                                                                                                                            Data.Set.Internal.Tip
+                                                                                                                                                                                                     in let (#
+                                                                                                                                                                                                              farInp,
+                                                                                                                                                                                                              farExp
+                                                                                                                                                                                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                                                                                                GHC.Types.LT ->
+                                                                                                                                                                                                                  (#
+                                                                                                                                                                                                                    inp,
+                                                                                                                                                                                                                    failExp
+                                                                                                                                                                                                                  #)
+                                                                                                                                                                                                                GHC.Types.EQ ->
+                                                                                                                                                                                                                  (#
+                                                                                                                                                                                                                    farInp,
+                                                                                                                                                                                                                    failExp GHC.Base.<> farExp
+                                                                                                                                                                                                                  #)
+                                                                                                                                                                                                                GHC.Types.GT ->
+                                                                                                                                                                                                                  (#
+                                                                                                                                                                                                                    farInp,
+                                                                                                                                                                                                                    farExp
+                                                                                                                                                                                                                  #)
+                                                                                                                                                                                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                                                                                                  else
+                                                                                                                                                                                    let _ = "checkHorizon.newCheck.fail"
+                                                                                                                                                                                     in let failExp =
+                                                                                                                                                                                              Data.Set.Internal.Bin
+                                                                                                                                                                                                1
+                                                                                                                                                                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                    ( case inputToken of
+                                                                                                                                                                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
+                                                                                                                                                                                                    )
+                                                                                                                                                                                                )
+                                                                                                                                                                                                Data.Set.Internal.Tip
+                                                                                                                                                                                                Data.Set.Internal.Tip
+                                                                                                                                                                                         in let (#
+                                                                                                                                                                                                  farInp,
+                                                                                                                                                                                                  farExp
+                                                                                                                                                                                                  #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                                                                                    GHC.Types.LT ->
+                                                                                                                                                                                                      (#
+                                                                                                                                                                                                        inp,
+                                                                                                                                                                                                        failExp
+                                                                                                                                                                                                      #)
+                                                                                                                                                                                                    GHC.Types.EQ ->
+                                                                                                                                                                                                      (#
+                                                                                                                                                                                                        farInp,
+                                                                                                                                                                                                        failExp GHC.Base.<> farExp
+                                                                                                                                                                                                      #)
+                                                                                                                                                                                                    GHC.Types.GT ->
+                                                                                                                                                                                                      (#
+                                                                                                                                                                                                        farInp,
+                                                                                                                                                                                                        farExp
+                                                                                                                                                                                                      #)
+                                                                                                                                                                                             in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                                                            else
+                                                                                                                                              let _ = "choicesBranch.else"
+                                                                                                                                               in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                                                      loop = \_callerOnReturn callerInput callerOnExceptionStackByLabel ->
+                                                                                                                        let _ = "pushValue"
+                                                                                                                         in name
+                                                                                                                              ( let _ = "onReturn"
+                                                                                                                                 in \farInp farExp v (!inp) ->
+                                                                                                                                      let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                       in do
+                                                                                                                                            sr <- GHC.STRef.readSTRef reg
+                                                                                                                                            let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                             in do
+                                                                                                                                                  let dupv = sr
+                                                                                                                                                  GHC.STRef.writeSTRef reg dupv
+                                                                                                                                                  let _ = "jump"
+                                                                                                                                                   in loop (GHC.Err.error "invalid onReturn") inp (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (onException callerInput) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                              )
+                                                                                                                              callerInput
+                                                                                                                              (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (onException callerInput) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                   in let _ = "jump"
+                                                                                                                       in loop callerOnReturn inp (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                            )
+                                                                                            inp
+                                                                                            (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                              )
+                                                                              cs
+                                                                              (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                      else
+                                                                        let _ = "checkToken.fail"
+                                                                         in let failExp =
+                                                                                  Data.Set.Internal.Bin
+                                                                                    1
+                                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                        ( case inputToken of
+                                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '['
+                                                                                        )
+                                                                                    )
+                                                                                    Data.Set.Internal.Tip
+                                                                                    Data.Set.Internal.Tip
+                                                                             in let (#
+                                                                                      farInp,
+                                                                                      farExp
+                                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                        GHC.Types.LT ->
+                                                                                          (#
+                                                                                            inp,
+                                                                                            failExp
+                                                                                          #)
+                                                                                        GHC.Types.EQ ->
+                                                                                          (#
+                                                                                            init,
+                                                                                            failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                          #)
+                                                                                        GHC.Types.GT ->
+                                                                                          (#
+                                                                                            init,
+                                                                                            Data.Set.Internal.empty
+                                                                                          #)
+                                                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                          else
+                                                            let _ = "checkHorizon.newCheck.fail"
+                                                             in let failExp =
+                                                                      Data.Set.Internal.Bin
+                                                                        1
+                                                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                            ( case inputToken of
+                                                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 5
+                                                                            )
+                                                                        )
+                                                                        Data.Set.Internal.Tip
+                                                                        Data.Set.Internal.Tip
+                                                                 in let (#
+                                                                          farInp,
+                                                                          farExp
+                                                                          #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                            GHC.Types.LT ->
+                                                                              (#
+                                                                                inp,
+                                                                                failExp
+                                                                              #)
+                                                                            GHC.Types.EQ ->
+                                                                              (#
+                                                                                init,
+                                                                                failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                              #)
+                                                                            GHC.Types.GT ->
+                                                                              (#
+                                                                                init,
+                                                                                Data.Set.Internal.empty
+                                                                              #)
+                                                                     in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                  name = \(!callerOnReturn) (!callerInput) (!callerOnExceptionStackByLabel) ->
+                                    let _ = "pushValue"
+                                     in let _ = "comment: satisfy ((GHC.Classes.==) '{')"
+                                         in let inp = callerInput
+                                             in let readFail = Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure callerOnExceptionStackByLabel
+                                                 in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=4"
+                                                     in if readMore (Symantic.Parser.Machine.Input.shiftRightText 3 inp)
+                                                          then
+                                                            let _ = "checkToken"
+                                                             in let !(#
+                                                                       c,
+                                                                       cs
+                                                                       #) = readNext inp
+                                                                 in if (GHC.Classes.==) '{' c
+                                                                      then
+                                                                        let _ = "lift2Value checkedHorizon=4"
+                                                                         in name
+                                                                              ( let _ = "onReturn"
+                                                                                 in \farInp farExp v (!inp) ->
+                                                                                      let _ = "lift2Value checkedHorizon=0"
+                                                                                       in let _ = "pushValue"
+                                                                                           in do
+                                                                                                let dupv = \x -> x
+                                                                                                reg <- GHC.STRef.newSTRef dupv
+                                                                                                let _ = "iter"
+                                                                                                 in let onException loopInput =
+                                                                                                          let _ = "onException"
+                                                                                                           in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                                                let _ = "comment: raiseAgainIfConsumed"
+                                                                                                                 in let _ = "saveInput checkedHorizon=0"
+                                                                                                                     in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                         in if ( \( Data.Text.Internal.Text
+                                                                                                                                      _
+                                                                                                                                      i
+                                                                                                                                      _
+                                                                                                                                    )
+                                                                                                                                  ( Data.Text.Internal.Text
+                                                                                                                                      _
+                                                                                                                                      j
+                                                                                                                                      _
+                                                                                                                                    ) -> i GHC.Classes.== j
+                                                                                                                               )
+                                                                                                                              loopInput
+                                                                                                                              failInp
+                                                                                                                              then
+                                                                                                                                let _ = "choicesBranch checkedHorizon=0"
+                                                                                                                                 in do
+                                                                                                                                      sr <- GHC.STRef.readSTRef reg
+                                                                                                                                      name
+                                                                                                                                        ( let _ = "onReturn"
+                                                                                                                                           in \farInp farExp v (!inp) ->
+                                                                                                                                                let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                 in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                     in name
+                                                                                                                                                          ( let _ = "onReturn"
+                                                                                                                                                             in \farInp farExp v (!inp) ->
+                                                                                                                                                                  let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                   in let _ = "comment: satisfy ((GHC.Classes.==) '}')"
+                                                                                                                                                                       in let inp = inp
+                                                                                                                                                                           in let readFail = readFail
+                                                                                                                                                                               in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=2"
+                                                                                                                                                                                   in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 inp)
+                                                                                                                                                                                        then
+                                                                                                                                                                                          let _ = "checkToken"
+                                                                                                                                                                                           in let !(#
+                                                                                                                                                                                                     c,
+                                                                                                                                                                                                     cs
+                                                                                                                                                                                                     #) = readNext inp
+                                                                                                                                                                                               in if (GHC.Classes.==) '}' c
+                                                                                                                                                                                                    then
+                                                                                                                                                                                                      let _ = "lift2Value checkedHorizon=2"
+                                                                                                                                                                                                       in name
+                                                                                                                                                                                                            ( let _ = "onReturn"
+                                                                                                                                                                                                               in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                    let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                     in let _ = "resume"
+                                                                                                                                                                                                                         in callerOnReturn
+                                                                                                                                                                                                                              farInp
+                                                                                                                                                                                                                              farExp
+                                                                                                                                                                                                                              ( let _ = "resume.genCode"
+                                                                                                                                                                                                                                 in v
+                                                                                                                                                                                                                              )
+                                                                                                                                                                                                                              inp
+                                                                                                                                                                                                            )
+                                                                                                                                                                                                            cs
+                                                                                                                                                                                                            (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                                                    else
+                                                                                                                                                                                                      let _ = "checkToken.fail"
+                                                                                                                                                                                                       in let failExp =
+                                                                                                                                                                                                                Data.Set.Internal.Bin
+                                                                                                                                                                                                                  1
+                                                                                                                                                                                                                  ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                                      ( case inputToken of
+                                                                                                                                                                                                                          (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '}'
+                                                                                                                                                                                                                      )
+                                                                                                                                                                                                                  )
+                                                                                                                                                                                                                  Data.Set.Internal.Tip
+                                                                                                                                                                                                                  Data.Set.Internal.Tip
+                                                                                                                                                                                                           in let (#
+                                                                                                                                                                                                                    farInp,
+                                                                                                                                                                                                                    farExp
+                                                                                                                                                                                                                    #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                                                                                                      GHC.Types.LT ->
+                                                                                                                                                                                                                        (#
+                                                                                                                                                                                                                          inp,
+                                                                                                                                                                                                                          failExp
+                                                                                                                                                                                                                        #)
+                                                                                                                                                                                                                      GHC.Types.EQ ->
+                                                                                                                                                                                                                        (#
+                                                                                                                                                                                                                          farInp,
+                                                                                                                                                                                                                          failExp GHC.Base.<> farExp
+                                                                                                                                                                                                                        #)
+                                                                                                                                                                                                                      GHC.Types.GT ->
+                                                                                                                                                                                                                        (#
+                                                                                                                                                                                                                          farInp,
+                                                                                                                                                                                                                          farExp
+                                                                                                                                                                                                                        #)
+                                                                                                                                                                                                               in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                                                                                                        else
+                                                                                                                                                                                          let _ = "checkHorizon.newCheck.fail"
+                                                                                                                                                                                           in let failExp =
+                                                                                                                                                                                                    Data.Set.Internal.Bin
+                                                                                                                                                                                                      1
+                                                                                                                                                                                                      ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                          ( case inputToken of
+                                                                                                                                                                                                              (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
+                                                                                                                                                                                                          )
+                                                                                                                                                                                                      )
+                                                                                                                                                                                                      Data.Set.Internal.Tip
+                                                                                                                                                                                                      Data.Set.Internal.Tip
+                                                                                                                                                                                               in let (#
+                                                                                                                                                                                                        farInp,
+                                                                                                                                                                                                        farExp
+                                                                                                                                                                                                        #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                                                                                          GHC.Types.LT ->
+                                                                                                                                                                                                            (#
+                                                                                                                                                                                                              inp,
+                                                                                                                                                                                                              failExp
+                                                                                                                                                                                                            #)
+                                                                                                                                                                                                          GHC.Types.EQ ->
+                                                                                                                                                                                                            (#
+                                                                                                                                                                                                              farInp,
+                                                                                                                                                                                                              failExp GHC.Base.<> farExp
+                                                                                                                                                                                                            #)
+                                                                                                                                                                                                          GHC.Types.GT ->
+                                                                                                                                                                                                            (#
+                                                                                                                                                                                                              farInp,
+                                                                                                                                                                                                              farExp
+                                                                                                                                                                                                            #)
+                                                                                                                                                                                                   in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                                                                          )
+                                                                                                                                                          inp
+                                                                                                                                                          Data.Map.Internal.Tip
+                                                                                                                                        )
+                                                                                                                                        failInp
+                                                                                                                                        Data.Map.Internal.Tip
+                                                                                                                              else
+                                                                                                                                let _ = "choicesBranch.else"
+                                                                                                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                                        loop = \_callerOnReturn callerInput callerOnExceptionStackByLabel ->
+                                                                                                          let _ = "pushValue"
+                                                                                                           in let join = \farInp farExp v (!inp) ->
+                                                                                                                    let _ = "lift2Value checkedHorizon=0"
+                                                                                                                     in do
+                                                                                                                          sr <- GHC.STRef.readSTRef reg
+                                                                                                                          let _ = "lift2Value checkedHorizon=0"
+                                                                                                                           in do
+                                                                                                                                let dupv = sr
+                                                                                                                                GHC.STRef.writeSTRef reg dupv
+                                                                                                                                let _ = "jump"
+                                                                                                                                 in loop (GHC.Err.error "invalid onReturn") inp (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (onException callerInput) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                               in let _ = "catch ExceptionFailure checkedHorizon=0"
+                                                                                                                   in let onException =
+                                                                                                                            let _ = "onException"
+                                                                                                                             in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                                                                  let _ = "comment: raiseAgainIfConsumed"
+                                                                                                                                   in let _ = "saveInput checkedHorizon=0"
+                                                                                                                                       in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                           in if ( \( Data.Text.Internal.Text
+                                                                                                                                                        _
+                                                                                                                                                        i
+                                                                                                                                                        _
+                                                                                                                                                      )
+                                                                                                                                                    ( Data.Text.Internal.Text
+                                                                                                                                                        _
+                                                                                                                                                        j
+                                                                                                                                                        _
+                                                                                                                                                      ) -> i GHC.Classes.== j
+                                                                                                                                                 )
+                                                                                                                                                callerInput
+                                                                                                                                                failInp
+                                                                                                                                                then
+                                                                                                                                                  let _ = "choicesBranch checkedHorizon=0"
+                                                                                                                                                   in let _ = "catch ExceptionFailure checkedHorizon=0"
+                                                                                                                                                       in let onException =
+                                                                                                                                                                let _ = "onException"
+                                                                                                                                                                 in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                                                                                                      let _ = "comment: raiseAgainIfConsumed"
+                                                                                                                                                                       in let _ = "saveInput checkedHorizon=0"
+                                                                                                                                                                           in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                               in if ( \( Data.Text.Internal.Text
+                                                                                                                                                                                            _
+                                                                                                                                                                                            i
+                                                                                                                                                                                            _
+                                                                                                                                                                                          )
+                                                                                                                                                                                        ( Data.Text.Internal.Text
+                                                                                                                                                                                            _
+                                                                                                                                                                                            j
+                                                                                                                                                                                            _
+                                                                                                                                                                                          ) -> i GHC.Classes.== j
+                                                                                                                                                                                     )
+                                                                                                                                                                                    failInp
+                                                                                                                                                                                    failInp
+                                                                                                                                                                                    then
+                                                                                                                                                                                      let _ = "choicesBranch checkedHorizon=0"
+                                                                                                                                                                                       in let _ = "catch ExceptionFailure checkedHorizon=0"
+                                                                                                                                                                                           in let onException =
+                                                                                                                                                                                                    let _ = "onException"
+                                                                                                                                                                                                     in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                                                                                                                                          let _ = "comment: raiseAgainIfConsumed"
+                                                                                                                                                                                                           in let _ = "saveInput checkedHorizon=0"
+                                                                                                                                                                                                               in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                   in if ( \( Data.Text.Internal.Text
+                                                                                                                                                                                                                                _
+                                                                                                                                                                                                                                i
+                                                                                                                                                                                                                                _
+                                                                                                                                                                                                                              )
+                                                                                                                                                                                                                            ( Data.Text.Internal.Text
+                                                                                                                                                                                                                                _
+                                                                                                                                                                                                                                j
+                                                                                                                                                                                                                                _
+                                                                                                                                                                                                                              ) -> i GHC.Classes.== j
+                                                                                                                                                                                                                         )
+                                                                                                                                                                                                                        failInp
+                                                                                                                                                                                                                        failInp
+                                                                                                                                                                                                                        then
+                                                                                                                                                                                                                          let _ = "choicesBranch checkedHorizon=0"
+                                                                                                                                                                                                                           in let _ = "pushValue"
+                                                                                                                                                                                                                               in name
+                                                                                                                                                                                                                                    ( let _ = "onReturn"
+                                                                                                                                                                                                                                       in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                            let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                             in name
+                                                                                                                                                                                                                                                  ( let _ = "onReturn"
+                                                                                                                                                                                                                                                     in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                                          let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                           in let _ = "resume"
+                                                                                                                                                                                                                                                               in join
+                                                                                                                                                                                                                                                                    farInp
+                                                                                                                                                                                                                                                                    farExp
+                                                                                                                                                                                                                                                                    ( let _ = "resume.genCode"
+                                                                                                                                                                                                                                                                       in v
+                                                                                                                                                                                                                                                                    )
+                                                                                                                                                                                                                                                                    inp
+                                                                                                                                                                                                                                                  )
+                                                                                                                                                                                                                                                  inp
+                                                                                                                                                                                                                                                  (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (onException callerInput) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                                                                                    )
+                                                                                                                                                                                                                                    failInp
+                                                                                                                                                                                                                                    (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (onException callerInput) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                                                                        else
+                                                                                                                                                                                                                          let _ = "choicesBranch.else"
+                                                                                                                                                                                                                           in onException callerInput Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                                                                                                                               in let _ = "catch ExceptionFailure checkedHorizon=0"
+                                                                                                                                                                                                   in let onException =
+                                                                                                                                                                                                            let _ = "onException"
+                                                                                                                                                                                                             in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                                                                                                                                                  let _ = "loadInput checkedHorizon=0"
+                                                                                                                                                                                                                   in let _ = "checkHorizon.noCheck"
+                                                                                                                                                                                                                       in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                                                                                                                                       in let _ = "pushValue"
+                                                                                                                                                                                                           in let join = \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                    let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                     in name
+                                                                                                                                                                                                                          ( let _ = "onReturn"
+                                                                                                                                                                                                                             in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                  let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                   in let _ = "pushValue"
+                                                                                                                                                                                                                                       in do
+                                                                                                                                                                                                                                            let dupv = \x -> x
+                                                                                                                                                                                                                                            reg <- GHC.STRef.newSTRef dupv
+                                                                                                                                                                                                                                            let _ = "iter"
+                                                                                                                                                                                                                                             in let onException loopInput =
+                                                                                                                                                                                                                                                      let _ = "onException"
+                                                                                                                                                                                                                                                       in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                                                                                                                                                                                            let _ = "comment: raiseAgainIfConsumed"
+                                                                                                                                                                                                                                                             in let _ = "saveInput checkedHorizon=0"
+                                                                                                                                                                                                                                                                 in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                     in if ( \( Data.Text.Internal.Text
+                                                                                                                                                                                                                                                                                  _
+                                                                                                                                                                                                                                                                                  i
+                                                                                                                                                                                                                                                                                  _
+                                                                                                                                                                                                                                                                                )
+                                                                                                                                                                                                                                                                              ( Data.Text.Internal.Text
+                                                                                                                                                                                                                                                                                  _
+                                                                                                                                                                                                                                                                                  j
+                                                                                                                                                                                                                                                                                  _
+                                                                                                                                                                                                                                                                                ) -> i GHC.Classes.== j
+                                                                                                                                                                                                                                                                           )
+                                                                                                                                                                                                                                                                          loopInput
+                                                                                                                                                                                                                                                                          failInp
+                                                                                                                                                                                                                                                                          then
+                                                                                                                                                                                                                                                                            let _ = "choicesBranch checkedHorizon=0"
+                                                                                                                                                                                                                                                                             in do
+                                                                                                                                                                                                                                                                                  sr <- GHC.STRef.readSTRef reg
+                                                                                                                                                                                                                                                                                  name
+                                                                                                                                                                                                                                                                                    ( let _ = "onReturn"
+                                                                                                                                                                                                                                                                                       in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                                                                            let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                                             in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                 in name
+                                                                                                                                                                                                                                                                                                      ( let _ = "onReturn"
+                                                                                                                                                                                                                                                                                                         in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                                                                                              let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                               in let _ = "comment: satisfy ((GHC.Classes.==) '=')"
+                                                                                                                                                                                                                                                                                                                   in let inp = inp
+                                                                                                                                                                                                                                                                                                                       in let readFail = onException
+                                                                                                                                                                                                                                                                                                                           in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=6"
+                                                                                                                                                                                                                                                                                                                               in if readMore (Symantic.Parser.Machine.Input.shiftRightText 5 inp)
+                                                                                                                                                                                                                                                                                                                                    then
+                                                                                                                                                                                                                                                                                                                                      let _ = "checkToken"
+                                                                                                                                                                                                                                                                                                                                       in let !(#
+                                                                                                                                                                                                                                                                                                                                                 c,
+                                                                                                                                                                                                                                                                                                                                                 cs
+                                                                                                                                                                                                                                                                                                                                                 #) = readNext inp
+                                                                                                                                                                                                                                                                                                                                           in if (GHC.Classes.==) '=' c
+                                                                                                                                                                                                                                                                                                                                                then
+                                                                                                                                                                                                                                                                                                                                                  let _ = "lift2Value checkedHorizon=6"
+                                                                                                                                                                                                                                                                                                                                                   in name
+                                                                                                                                                                                                                                                                                                                                                        ( let _ = "onReturn"
+                                                                                                                                                                                                                                                                                                                                                           in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                                                                                                                                                let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                                                                                 in name
+                                                                                                                                                                                                                                                                                                                                                                      ( let _ = "onReturn"
+                                                                                                                                                                                                                                                                                                                                                                         in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                                                                                                                                                              let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                                                                                               in let _ = "pushValue"
+                                                                                                                                                                                                                                                                                                                                                                                   in do
+                                                                                                                                                                                                                                                                                                                                                                                        let dupv = \x -> x
+                                                                                                                                                                                                                                                                                                                                                                                        reg <- GHC.STRef.newSTRef dupv
+                                                                                                                                                                                                                                                                                                                                                                                        let _ = "iter"
+                                                                                                                                                                                                                                                                                                                                                                                         in let onException loopInput =
+                                                                                                                                                                                                                                                                                                                                                                                                  let _ = "onException"
+                                                                                                                                                                                                                                                                                                                                                                                                   in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                                                                                                                                                                                                                                                                                                                                        let _ = "comment: raiseAgainIfConsumed"
+                                                                                                                                                                                                                                                                                                                                                                                                         in let _ = "saveInput checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                                                                                                                             in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                                                                                                                                 in if ( \( Data.Text.Internal.Text
+                                                                                                                                                                                                                                                                                                                                                                                                                              _
+                                                                                                                                                                                                                                                                                                                                                                                                                              i
+                                                                                                                                                                                                                                                                                                                                                                                                                              _
+                                                                                                                                                                                                                                                                                                                                                                                                                            )
+                                                                                                                                                                                                                                                                                                                                                                                                                          ( Data.Text.Internal.Text
+                                                                                                                                                                                                                                                                                                                                                                                                                              _
+                                                                                                                                                                                                                                                                                                                                                                                                                              j
+                                                                                                                                                                                                                                                                                                                                                                                                                              _
+                                                                                                                                                                                                                                                                                                                                                                                                                            ) -> i GHC.Classes.== j
+                                                                                                                                                                                                                                                                                                                                                                                                                       )
+                                                                                                                                                                                                                                                                                                                                                                                                                      loopInput
+                                                                                                                                                                                                                                                                                                                                                                                                                      failInp
+                                                                                                                                                                                                                                                                                                                                                                                                                      then
+                                                                                                                                                                                                                                                                                                                                                                                                                        let _ = "choicesBranch checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                                                                                                                                         in do
+                                                                                                                                                                                                                                                                                                                                                                                                                              sr <- GHC.STRef.readSTRef reg
+                                                                                                                                                                                                                                                                                                                                                                                                                              name
+                                                                                                                                                                                                                                                                                                                                                                                                                                ( let _ = "onReturn"
+                                                                                                                                                                                                                                                                                                                                                                                                                                   in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                                                                                                                                                                                                                        let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                                                                                                                                                         in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                                                                                                                                                             in name
+                                                                                                                                                                                                                                                                                                                                                                                                                                                  ( let _ = "onReturn"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                     in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                                                                                                                                                                                                                                          let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                           in name
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                ( let _ = "onReturn"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                   in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                        let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                         in let _ = "commit"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                             in let _ = "commit"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 in let _ = "resume"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     in join
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          farInp
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          farExp
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ( let _ = "resume.genCode"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             in v
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          )
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          inp
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                )
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                inp
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                                                                                                                                                                                                                                                                                                  )
+                                                                                                                                                                                                                                                                                                                                                                                                                                                  inp
+                                                                                                                                                                                                                                                                                                                                                                                                                                                  Data.Map.Internal.Tip
+                                                                                                                                                                                                                                                                                                                                                                                                                                )
+                                                                                                                                                                                                                                                                                                                                                                                                                                failInp
+                                                                                                                                                                                                                                                                                                                                                                                                                                Data.Map.Internal.Tip
+                                                                                                                                                                                                                                                                                                                                                                                                                      else
+                                                                                                                                                                                                                                                                                                                                                                                                                        let _ = "choicesBranch.else"
+                                                                                                                                                                                                                                                                                                                                                                                                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                                                                                                                                                                                                                                                                                                                                loop = \_callerOnReturn callerInput callerOnExceptionStackByLabel ->
+                                                                                                                                                                                                                                                                                                                                                                                                  let _ = "pushValue"
+                                                                                                                                                                                                                                                                                                                                                                                                   in name
+                                                                                                                                                                                                                                                                                                                                                                                                        ( let _ = "onReturn"
+                                                                                                                                                                                                                                                                                                                                                                                                           in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                                                                                                                                                                                                let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                                                                                                                                 in name
+                                                                                                                                                                                                                                                                                                                                                                                                                      ( let _ = "onReturn"
+                                                                                                                                                                                                                                                                                                                                                                                                                         in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                                                                                                                                                                                                              let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                                                                                                                                               in name
+                                                                                                                                                                                                                                                                                                                                                                                                                                    ( let _ = "onReturn"
+                                                                                                                                                                                                                                                                                                                                                                                                                                       in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                                                                                                                                                                                                                            let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                                                                                                                                                             in do
+                                                                                                                                                                                                                                                                                                                                                                                                                                                  sr <- GHC.STRef.readSTRef reg
+                                                                                                                                                                                                                                                                                                                                                                                                                                                  let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                   in do
+                                                                                                                                                                                                                                                                                                                                                                                                                                                        let dupv = v v sr
+                                                                                                                                                                                                                                                                                                                                                                                                                                                        GHC.STRef.writeSTRef reg dupv
+                                                                                                                                                                                                                                                                                                                                                                                                                                                        let _ = "jump"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                         in loop (GHC.Err.error "invalid onReturn") inp (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (onException callerInput) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                                                                                                                                                                                                                                                                                    )
+                                                                                                                                                                                                                                                                                                                                                                                                                                    inp
+                                                                                                                                                                                                                                                                                                                                                                                                                                    (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (onException callerInput) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                                                                                                                                                                                                                                                                      )
+                                                                                                                                                                                                                                                                                                                                                                                                                      inp
+                                                                                                                                                                                                                                                                                                                                                                                                                      (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (onException callerInput) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                                                                                                                                                                                                                                                        )
+                                                                                                                                                                                                                                                                                                                                                                                                        callerInput
+                                                                                                                                                                                                                                                                                                                                                                                                        Data.Map.Internal.Tip
+                                                                                                                                                                                                                                                                                                                                                                                             in let _ = "jump"
+                                                                                                                                                                                                                                                                                                                                                                                                 in loop (GHC.Err.error "invalid onReturn") inp (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                                                                                                                                                                                                                      )
+                                                                                                                                                                                                                                                                                                                                                                      inp
+                                                                                                                                                                                                                                                                                                                                                                      (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                                                                                                                                                                                                        )
+                                                                                                                                                                                                                                                                                                                                                        cs
+                                                                                                                                                                                                                                                                                                                                                        (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                                                                                                                                                                                                else
+                                                                                                                                                                                                                                                                                                                                                  let _ = "checkToken.fail"
+                                                                                                                                                                                                                                                                                                                                                   in let failExp =
+                                                                                                                                                                                                                                                                                                                                                            Data.Set.Internal.Bin
+                                                                                                                                                                                                                                                                                                                                                              1
+                                                                                                                                                                                                                                                                                                                                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                                                                                                                                                                                  ( case inputToken of
+                                                                                                                                                                                                                                                                                                                                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '='
+                                                                                                                                                                                                                                                                                                                                                                  )
+                                                                                                                                                                                                                                                                                                                                                              )
+                                                                                                                                                                                                                                                                                                                                                              Data.Set.Internal.Tip
+                                                                                                                                                                                                                                                                                                                                                              Data.Set.Internal.Tip
+                                                                                                                                                                                                                                                                                                                                                       in let (#
+                                                                                                                                                                                                                                                                                                                                                                farInp,
+                                                                                                                                                                                                                                                                                                                                                                farExp
+                                                                                                                                                                                                                                                                                                                                                                #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                                                                                                                                                                                                                                                  GHC.Types.LT ->
+                                                                                                                                                                                                                                                                                                                                                                    (#
+                                                                                                                                                                                                                                                                                                                                                                      inp,
+                                                                                                                                                                                                                                                                                                                                                                      failExp
+                                                                                                                                                                                                                                                                                                                                                                    #)
+                                                                                                                                                                                                                                                                                                                                                                  GHC.Types.EQ ->
+                                                                                                                                                                                                                                                                                                                                                                    (#
+                                                                                                                                                                                                                                                                                                                                                                      farInp,
+                                                                                                                                                                                                                                                                                                                                                                      failExp GHC.Base.<> farExp
+                                                                                                                                                                                                                                                                                                                                                                    #)
+                                                                                                                                                                                                                                                                                                                                                                  GHC.Types.GT ->
+                                                                                                                                                                                                                                                                                                                                                                    (#
+                                                                                                                                                                                                                                                                                                                                                                      farInp,
+                                                                                                                                                                                                                                                                                                                                                                      farExp
+                                                                                                                                                                                                                                                                                                                                                                    #)
+                                                                                                                                                                                                                                                                                                                                                           in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                                                                                                                                                                                                                                                    else
+                                                                                                                                                                                                                                                                                                                                      let _ = "checkHorizon.newCheck.fail"
+                                                                                                                                                                                                                                                                                                                                       in let failExp =
+                                                                                                                                                                                                                                                                                                                                                Data.Set.Internal.Bin
+                                                                                                                                                                                                                                                                                                                                                  1
+                                                                                                                                                                                                                                                                                                                                                  ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                                                                                                                                                                      ( case inputToken of
+                                                                                                                                                                                                                                                                                                                                                          (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 6
+                                                                                                                                                                                                                                                                                                                                                      )
+                                                                                                                                                                                                                                                                                                                                                  )
+                                                                                                                                                                                                                                                                                                                                                  Data.Set.Internal.Tip
+                                                                                                                                                                                                                                                                                                                                                  Data.Set.Internal.Tip
+                                                                                                                                                                                                                                                                                                                                           in let (#
+                                                                                                                                                                                                                                                                                                                                                    farInp,
+                                                                                                                                                                                                                                                                                                                                                    farExp
+                                                                                                                                                                                                                                                                                                                                                    #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                                                                                                                                                                                                                                      GHC.Types.LT ->
+                                                                                                                                                                                                                                                                                                                                                        (#
+                                                                                                                                                                                                                                                                                                                                                          inp,
+                                                                                                                                                                                                                                                                                                                                                          failExp
+                                                                                                                                                                                                                                                                                                                                                        #)
+                                                                                                                                                                                                                                                                                                                                                      GHC.Types.EQ ->
+                                                                                                                                                                                                                                                                                                                                                        (#
+                                                                                                                                                                                                                                                                                                                                                          farInp,
+                                                                                                                                                                                                                                                                                                                                                          failExp GHC.Base.<> farExp
+                                                                                                                                                                                                                                                                                                                                                        #)
+                                                                                                                                                                                                                                                                                                                                                      GHC.Types.GT ->
+                                                                                                                                                                                                                                                                                                                                                        (#
+                                                                                                                                                                                                                                                                                                                                                          farInp,
+                                                                                                                                                                                                                                                                                                                                                          farExp
+                                                                                                                                                                                                                                                                                                                                                        #)
+                                                                                                                                                                                                                                                                                                                                               in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                                                                                                                                                                                                                      )
+                                                                                                                                                                                                                                                                                                      inp
+                                                                                                                                                                                                                                                                                                      Data.Map.Internal.Tip
+                                                                                                                                                                                                                                                                                    )
+                                                                                                                                                                                                                                                                                    failInp
+                                                                                                                                                                                                                                                                                    Data.Map.Internal.Tip
+                                                                                                                                                                                                                                                                          else
+                                                                                                                                                                                                                                                                            let _ = "choicesBranch.else"
+                                                                                                                                                                                                                                                                             in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                                                                                                                                                                                    loop = \_callerOnReturn callerInput callerOnExceptionStackByLabel ->
+                                                                                                                                                                                                                                                      let _ = "pushValue"
+                                                                                                                                                                                                                                                       in name
+                                                                                                                                                                                                                                                            ( let _ = "onReturn"
+                                                                                                                                                                                                                                                               in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                                                    let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                     in name
+                                                                                                                                                                                                                                                                          ( let _ = "onReturn"
+                                                                                                                                                                                                                                                                             in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                                                                  let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                                   in name
+                                                                                                                                                                                                                                                                                        ( let _ = "onReturn"
+                                                                                                                                                                                                                                                                                           in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                                                                                let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                 in do
+                                                                                                                                                                                                                                                                                                      sr <- GHC.STRef.readSTRef reg
+                                                                                                                                                                                                                                                                                                      let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                       in do
+                                                                                                                                                                                                                                                                                                            let dupv = v v sr
+                                                                                                                                                                                                                                                                                                            GHC.STRef.writeSTRef reg dupv
+                                                                                                                                                                                                                                                                                                            let _ = "jump"
+                                                                                                                                                                                                                                                                                                             in loop (GHC.Err.error "invalid onReturn") inp (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (onException callerInput) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                                                                                                                                        )
+                                                                                                                                                                                                                                                                                        inp
+                                                                                                                                                                                                                                                                                        (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (onException callerInput) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                                                                                                                          )
+                                                                                                                                                                                                                                                                          inp
+                                                                                                                                                                                                                                                                          (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (onException callerInput) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                                                                                                            )
+                                                                                                                                                                                                                                                            callerInput
+                                                                                                                                                                                                                                                            Data.Map.Internal.Tip
+                                                                                                                                                                                                                                                 in let _ = "jump"
+                                                                                                                                                                                                                                                     in loop (GHC.Err.error "invalid onReturn") inp (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure onException Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                                                                          )
+                                                                                                                                                                                                                          inp
+                                                                                                                                                                                                                          (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure onException Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                                                               in let _ = "catch ExceptionFailure checkedHorizon=0"
+                                                                                                                                                                                                                   in let onException =
+                                                                                                                                                                                                                            let _ = "onException"
+                                                                                                                                                                                                                             in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                                                                                                                                                                  let _ = "comment: raiseAgainIfConsumed"
+                                                                                                                                                                                                                                   in let _ = "saveInput checkedHorizon=0"
+                                                                                                                                                                                                                                       in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                           in if ( \( Data.Text.Internal.Text
+                                                                                                                                                                                                                                                        _
+                                                                                                                                                                                                                                                        i
+                                                                                                                                                                                                                                                        _
+                                                                                                                                                                                                                                                      )
+                                                                                                                                                                                                                                                    ( Data.Text.Internal.Text
+                                                                                                                                                                                                                                                        _
+                                                                                                                                                                                                                                                        j
+                                                                                                                                                                                                                                                        _
+                                                                                                                                                                                                                                                      ) -> i GHC.Classes.== j
+                                                                                                                                                                                                                                                 )
+                                                                                                                                                                                                                                                failInp
+                                                                                                                                                                                                                                                failInp
+                                                                                                                                                                                                                                                then
+                                                                                                                                                                                                                                                  let _ = "choicesBranch checkedHorizon=0"
+                                                                                                                                                                                                                                                   in name
+                                                                                                                                                                                                                                                        ( let _ = "onReturn"
+                                                                                                                                                                                                                                                           in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                                                let _ = "resume"
+                                                                                                                                                                                                                                                                 in join
+                                                                                                                                                                                                                                                                      farInp
+                                                                                                                                                                                                                                                                      farExp
+                                                                                                                                                                                                                                                                      ( let _ = "resume.genCode"
+                                                                                                                                                                                                                                                                         in v
+                                                                                                                                                                                                                                                                      )
+                                                                                                                                                                                                                                                                      inp
+                                                                                                                                                                                                                                                        )
+                                                                                                                                                                                                                                                        failInp
+                                                                                                                                                                                                                                                        Data.Map.Internal.Tip
+                                                                                                                                                                                                                                                else
+                                                                                                                                                                                                                                                  let _ = "choicesBranch.else"
+                                                                                                                                                                                                                                                   in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                                                                                                                                                       in let _ = "pushValue"
+                                                                                                                                                                                                                           in let _ = "catch ExceptionFailure checkedHorizon=0"
+                                                                                                                                                                                                                               in let onException =
+                                                                                                                                                                                                                                        let _ = "onException"
+                                                                                                                                                                                                                                         in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                                                                                                                                                                              let _ = "loadInput checkedHorizon=0"
+                                                                                                                                                                                                                                               in let _ = "checkHorizon.noCheck"
+                                                                                                                                                                                                                                                   in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                                                                                                                                                                   in let _ = "pushValue"
+                                                                                                                                                                                                                                       in let _ = "comment: satisfy ((GHC.Classes.==) 'v')"
+                                                                                                                                                                                                                                           in let inp = failInp
+                                                                                                                                                                                                                                               in let readFail = onException
+                                                                                                                                                                                                                                                   in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=11"
+                                                                                                                                                                                                                                                       in if readMore (Symantic.Parser.Machine.Input.shiftRightText 10 inp)
+                                                                                                                                                                                                                                                            then
+                                                                                                                                                                                                                                                              let _ = "checkToken"
+                                                                                                                                                                                                                                                               in let !(#
+                                                                                                                                                                                                                                                                         c,
+                                                                                                                                                                                                                                                                         cs
+                                                                                                                                                                                                                                                                         #) = readNext inp
+                                                                                                                                                                                                                                                                   in if (GHC.Classes.==) 'v' c
+                                                                                                                                                                                                                                                                        then
+                                                                                                                                                                                                                                                                          let _ = "lift2Value checkedHorizon=11"
+                                                                                                                                                                                                                                                                           in let _ = "comment: satisfy ((GHC.Classes.==) 'a')"
+                                                                                                                                                                                                                                                                               in let _ = "checkHorizon.oldCheck: checkedHorizon=11"
+                                                                                                                                                                                                                                                                                   in let _ = "checkToken"
+                                                                                                                                                                                                                                                                                       in let !(#
+                                                                                                                                                                                                                                                                                                 c,
+                                                                                                                                                                                                                                                                                                 cs
+                                                                                                                                                                                                                                                                                                 #) = readNext cs
+                                                                                                                                                                                                                                                                                           in if (GHC.Classes.==) 'a' c
+                                                                                                                                                                                                                                                                                                then
+                                                                                                                                                                                                                                                                                                  let _ = "lift2Value checkedHorizon=10"
+                                                                                                                                                                                                                                                                                                   in let _ = "comment: satisfy ((GHC.Classes.==) 'r')"
+                                                                                                                                                                                                                                                                                                       in let _ = "checkHorizon.oldCheck: checkedHorizon=10"
+                                                                                                                                                                                                                                                                                                           in let _ = "checkToken"
+                                                                                                                                                                                                                                                                                                               in let !(#
+                                                                                                                                                                                                                                                                                                                         c,
+                                                                                                                                                                                                                                                                                                                         cs
+                                                                                                                                                                                                                                                                                                                         #) = readNext cs
+                                                                                                                                                                                                                                                                                                                   in if (GHC.Classes.==) 'r' c
+                                                                                                                                                                                                                                                                                                                        then
+                                                                                                                                                                                                                                                                                                                          let _ = "lift2Value checkedHorizon=9"
+                                                                                                                                                                                                                                                                                                                           in let _ = "commit"
+                                                                                                                                                                                                                                                                                                                               in let _ = "lift2Value checkedHorizon=9"
+                                                                                                                                                                                                                                                                                                                                   in name
+                                                                                                                                                                                                                                                                                                                                        ( let _ = "onReturn"
+                                                                                                                                                                                                                                                                                                                                           in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                                                                                                                                let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                                                                 in let _ = "commit"
+                                                                                                                                                                                                                                                                                                                                                     in let _ = "resume"
+                                                                                                                                                                                                                                                                                                                                                         in join
+                                                                                                                                                                                                                                                                                                                                                              farInp
+                                                                                                                                                                                                                                                                                                                                                              farExp
+                                                                                                                                                                                                                                                                                                                                                              ( let _ = "resume.genCode"
+                                                                                                                                                                                                                                                                                                                                                                 in GHC.Tuple . ()
+                                                                                                                                                                                                                                                                                                                                                              )
+                                                                                                                                                                                                                                                                                                                                                              inp
+                                                                                                                                                                                                                                                                                                                                        )
+                                                                                                                                                                                                                                                                                                                                        cs
+                                                                                                                                                                                                                                                                                                                                        Data.Map.Internal.Tip
+                                                                                                                                                                                                                                                                                                                        else
+                                                                                                                                                                                                                                                                                                                          let _ = "checkToken.fail"
+                                                                                                                                                                                                                                                                                                                           in let failExp =
+                                                                                                                                                                                                                                                                                                                                    Data.Set.Internal.Bin
+                                                                                                                                                                                                                                                                                                                                      1
+                                                                                                                                                                                                                                                                                                                                      ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                                                                                                                                                          ( case inputToken of
+                                                                                                                                                                                                                                                                                                                                              (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'r'
+                                                                                                                                                                                                                                                                                                                                          )
+                                                                                                                                                                                                                                                                                                                                      )
+                                                                                                                                                                                                                                                                                                                                      Data.Set.Internal.Tip
+                                                                                                                                                                                                                                                                                                                                      Data.Set.Internal.Tip
+                                                                                                                                                                                                                                                                                                                               in let (#
+                                                                                                                                                                                                                                                                                                                                        farInp,
+                                                                                                                                                                                                                                                                                                                                        farExp
+                                                                                                                                                                                                                                                                                                                                        #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp cs of
+                                                                                                                                                                                                                                                                                                                                          GHC.Types.LT ->
+                                                                                                                                                                                                                                                                                                                                            (#
+                                                                                                                                                                                                                                                                                                                                              cs,
+                                                                                                                                                                                                                                                                                                                                              failExp
+                                                                                                                                                                                                                                                                                                                                            #)
+                                                                                                                                                                                                                                                                                                                                          GHC.Types.EQ ->
+                                                                                                                                                                                                                                                                                                                                            (#
+                                                                                                                                                                                                                                                                                                                                              farInp,
+                                                                                                                                                                                                                                                                                                                                              failExp GHC.Base.<> farExp
+                                                                                                                                                                                                                                                                                                                                            #)
+                                                                                                                                                                                                                                                                                                                                          GHC.Types.GT ->
+                                                                                                                                                                                                                                                                                                                                            (#
+                                                                                                                                                                                                                                                                                                                                              farInp,
+                                                                                                                                                                                                                                                                                                                                              farExp
+                                                                                                                                                                                                                                                                                                                                            #)
+                                                                                                                                                                                                                                                                                                                                   in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                                                                                                                                                                                                                                                else
+                                                                                                                                                                                                                                                                                                  let _ = "checkToken.fail"
+                                                                                                                                                                                                                                                                                                   in let failExp =
+                                                                                                                                                                                                                                                                                                            Data.Set.Internal.Bin
+                                                                                                                                                                                                                                                                                                              1
+                                                                                                                                                                                                                                                                                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                                                                                                                                  ( case inputToken of
+                                                                                                                                                                                                                                                                                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
+                                                                                                                                                                                                                                                                                                                  )
+                                                                                                                                                                                                                                                                                                              )
+                                                                                                                                                                                                                                                                                                              Data.Set.Internal.Tip
+                                                                                                                                                                                                                                                                                                              Data.Set.Internal.Tip
+                                                                                                                                                                                                                                                                                                       in let (#
+                                                                                                                                                                                                                                                                                                                farInp,
+                                                                                                                                                                                                                                                                                                                farExp
+                                                                                                                                                                                                                                                                                                                #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp cs of
+                                                                                                                                                                                                                                                                                                                  GHC.Types.LT ->
+                                                                                                                                                                                                                                                                                                                    (#
+                                                                                                                                                                                                                                                                                                                      cs,
+                                                                                                                                                                                                                                                                                                                      failExp
+                                                                                                                                                                                                                                                                                                                    #)
+                                                                                                                                                                                                                                                                                                                  GHC.Types.EQ ->
+                                                                                                                                                                                                                                                                                                                    (#
+                                                                                                                                                                                                                                                                                                                      farInp,
+                                                                                                                                                                                                                                                                                                                      failExp GHC.Base.<> farExp
+                                                                                                                                                                                                                                                                                                                    #)
+                                                                                                                                                                                                                                                                                                                  GHC.Types.GT ->
+                                                                                                                                                                                                                                                                                                                    (#
+                                                                                                                                                                                                                                                                                                                      farInp,
+                                                                                                                                                                                                                                                                                                                      farExp
+                                                                                                                                                                                                                                                                                                                    #)
+                                                                                                                                                                                                                                                                                                           in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                                                                                                                                                                                                                        else
+                                                                                                                                                                                                                                                                          let _ = "checkToken.fail"
+                                                                                                                                                                                                                                                                           in let failExp =
+                                                                                                                                                                                                                                                                                    Data.Set.Internal.Bin
+                                                                                                                                                                                                                                                                                      1
+                                                                                                                                                                                                                                                                                      ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                                                                                                          ( case inputToken of
+                                                                                                                                                                                                                                                                                              (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'v'
+                                                                                                                                                                                                                                                                                          )
+                                                                                                                                                                                                                                                                                      )
+                                                                                                                                                                                                                                                                                      Data.Set.Internal.Tip
+                                                                                                                                                                                                                                                                                      Data.Set.Internal.Tip
+                                                                                                                                                                                                                                                                               in let (#
+                                                                                                                                                                                                                                                                                        farInp,
+                                                                                                                                                                                                                                                                                        farExp
+                                                                                                                                                                                                                                                                                        #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                                                                                                                                                                          GHC.Types.LT ->
+                                                                                                                                                                                                                                                                                            (#
+                                                                                                                                                                                                                                                                                              inp,
+                                                                                                                                                                                                                                                                                              failExp
+                                                                                                                                                                                                                                                                                            #)
+                                                                                                                                                                                                                                                                                          GHC.Types.EQ ->
+                                                                                                                                                                                                                                                                                            (#
+                                                                                                                                                                                                                                                                                              farInp,
+                                                                                                                                                                                                                                                                                              failExp GHC.Base.<> farExp
+                                                                                                                                                                                                                                                                                            #)
+                                                                                                                                                                                                                                                                                          GHC.Types.GT ->
+                                                                                                                                                                                                                                                                                            (#
+                                                                                                                                                                                                                                                                                              farInp,
+                                                                                                                                                                                                                                                                                              farExp
+                                                                                                                                                                                                                                                                                            #)
+                                                                                                                                                                                                                                                                                   in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                                                                                                                                                                            else
+                                                                                                                                                                                                                                                              let _ = "checkHorizon.newCheck.fail"
+                                                                                                                                                                                                                                                               in let failExp =
+                                                                                                                                                                                                                                                                        Data.Set.Internal.Bin
+                                                                                                                                                                                                                                                                          1
+                                                                                                                                                                                                                                                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                                                                                              ( case inputToken of
+                                                                                                                                                                                                                                                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 11
+                                                                                                                                                                                                                                                                              )
+                                                                                                                                                                                                                                                                          )
+                                                                                                                                                                                                                                                                          Data.Set.Internal.Tip
+                                                                                                                                                                                                                                                                          Data.Set.Internal.Tip
+                                                                                                                                                                                                                                                                   in let (#
+                                                                                                                                                                                                                                                                            farInp,
+                                                                                                                                                                                                                                                                            farExp
+                                                                                                                                                                                                                                                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                                                                                                                                                              GHC.Types.LT ->
+                                                                                                                                                                                                                                                                                (#
+                                                                                                                                                                                                                                                                                  inp,
+                                                                                                                                                                                                                                                                                  failExp
+                                                                                                                                                                                                                                                                                #)
+                                                                                                                                                                                                                                                                              GHC.Types.EQ ->
+                                                                                                                                                                                                                                                                                (#
+                                                                                                                                                                                                                                                                                  farInp,
+                                                                                                                                                                                                                                                                                  failExp GHC.Base.<> farExp
+                                                                                                                                                                                                                                                                                #)
+                                                                                                                                                                                                                                                                              GHC.Types.GT ->
+                                                                                                                                                                                                                                                                                (#
+                                                                                                                                                                                                                                                                                  farInp,
+                                                                                                                                                                                                                                                                                  farExp
+                                                                                                                                                                                                                                                                                #)
+                                                                                                                                                                                                                                                                       in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                                                                                                    else
+                                                                                                                                                                                      let _ = "choicesBranch.else"
+                                                                                                                                                                                       in onException callerInput Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                                                                                           in let _ = "pushValue"
+                                                                                                                                                               in let _ = "catch ExceptionFailure checkedHorizon=0"
+                                                                                                                                                                   in let onException =
+                                                                                                                                                                            let _ = "onException"
+                                                                                                                                                                             in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                                                                                                                  let _ = "loadInput checkedHorizon=0"
+                                                                                                                                                                                   in let _ = "checkHorizon.noCheck"
+                                                                                                                                                                                       in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                                                                                                       in let _ = "pushValue"
+                                                                                                                                                                           in let _ = "comment: satisfy ((GHC.Classes.==) 'w')"
+                                                                                                                                                                               in let inp = failInp
+                                                                                                                                                                                   in let readFail = onException
+                                                                                                                                                                                       in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=7"
+                                                                                                                                                                                           in if readMore (Symantic.Parser.Machine.Input.shiftRightText 6 inp)
+                                                                                                                                                                                                then
+                                                                                                                                                                                                  let _ = "checkToken"
+                                                                                                                                                                                                   in let !(#
+                                                                                                                                                                                                             c,
+                                                                                                                                                                                                             cs
+                                                                                                                                                                                                             #) = readNext inp
+                                                                                                                                                                                                       in if (GHC.Classes.==) 'w' c
+                                                                                                                                                                                                            then
+                                                                                                                                                                                                              let _ = "lift2Value checkedHorizon=7"
+                                                                                                                                                                                                               in let _ = "comment: satisfy ((GHC.Classes.==) 'h')"
+                                                                                                                                                                                                                   in let _ = "checkHorizon.oldCheck: checkedHorizon=7"
+                                                                                                                                                                                                                       in let _ = "checkToken"
+                                                                                                                                                                                                                           in let !(#
+                                                                                                                                                                                                                                     c,
+                                                                                                                                                                                                                                     cs
+                                                                                                                                                                                                                                     #) = readNext cs
+                                                                                                                                                                                                                               in if (GHC.Classes.==) 'h' c
+                                                                                                                                                                                                                                    then
+                                                                                                                                                                                                                                      let _ = "lift2Value checkedHorizon=6"
+                                                                                                                                                                                                                                       in let _ = "comment: satisfy ((GHC.Classes.==) 'i')"
+                                                                                                                                                                                                                                           in let _ = "checkHorizon.oldCheck: checkedHorizon=6"
+                                                                                                                                                                                                                                               in let _ = "checkToken"
+                                                                                                                                                                                                                                                   in let !(#
+                                                                                                                                                                                                                                                             c,
+                                                                                                                                                                                                                                                             cs
+                                                                                                                                                                                                                                                             #) = readNext cs
+                                                                                                                                                                                                                                                       in if (GHC.Classes.==) 'i' c
+                                                                                                                                                                                                                                                            then
+                                                                                                                                                                                                                                                              let _ = "lift2Value checkedHorizon=5"
+                                                                                                                                                                                                                                                               in let _ = "comment: satisfy ((GHC.Classes.==) 'l')"
+                                                                                                                                                                                                                                                                   in let _ = "checkHorizon.oldCheck: checkedHorizon=5"
+                                                                                                                                                                                                                                                                       in let _ = "checkToken"
+                                                                                                                                                                                                                                                                           in let !(#
+                                                                                                                                                                                                                                                                                     c,
+                                                                                                                                                                                                                                                                                     cs
+                                                                                                                                                                                                                                                                                     #) = readNext cs
+                                                                                                                                                                                                                                                                               in if (GHC.Classes.==) 'l' c
+                                                                                                                                                                                                                                                                                    then
+                                                                                                                                                                                                                                                                                      let _ = "lift2Value checkedHorizon=4"
+                                                                                                                                                                                                                                                                                       in let _ = "comment: satisfy ((GHC.Classes.==) 'e')"
+                                                                                                                                                                                                                                                                                           in let _ = "checkHorizon.oldCheck: checkedHorizon=4"
+                                                                                                                                                                                                                                                                                               in let _ = "checkToken"
+                                                                                                                                                                                                                                                                                                   in let !(#
+                                                                                                                                                                                                                                                                                                             c,
+                                                                                                                                                                                                                                                                                                             cs
+                                                                                                                                                                                                                                                                                                             #) = readNext cs
+                                                                                                                                                                                                                                                                                                       in if (GHC.Classes.==) 'e' c
+                                                                                                                                                                                                                                                                                                            then
+                                                                                                                                                                                                                                                                                                              let _ = "lift2Value checkedHorizon=3"
+                                                                                                                                                                                                                                                                                                               in let _ = "commit"
+                                                                                                                                                                                                                                                                                                                   in let _ = "lift2Value checkedHorizon=3"
+                                                                                                                                                                                                                                                                                                                       in name
+                                                                                                                                                                                                                                                                                                                            ( let _ = "onReturn"
+                                                                                                                                                                                                                                                                                                                               in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                                                                                                                    let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                                                     in name
+                                                                                                                                                                                                                                                                                                                                          ( let _ = "onReturn"
+                                                                                                                                                                                                                                                                                                                                             in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                                                                                                                                  let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                                                                   in name
+                                                                                                                                                                                                                                                                                                                                                        ( let _ = "onReturn"
+                                                                                                                                                                                                                                                                                                                                                           in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                                                                                                                                                let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                                                                                 in let _ = "commit"
+                                                                                                                                                                                                                                                                                                                                                                     in let _ = "resume"
+                                                                                                                                                                                                                                                                                                                                                                         in join
+                                                                                                                                                                                                                                                                                                                                                                              farInp
+                                                                                                                                                                                                                                                                                                                                                                              farExp
+                                                                                                                                                                                                                                                                                                                                                                              ( let _ = "resume.genCode"
+                                                                                                                                                                                                                                                                                                                                                                                 in v
+                                                                                                                                                                                                                                                                                                                                                                              )
+                                                                                                                                                                                                                                                                                                                                                                              inp
+                                                                                                                                                                                                                                                                                                                                                        )
+                                                                                                                                                                                                                                                                                                                                                        inp
+                                                                                                                                                                                                                                                                                                                                                        (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure onException Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                                                                                                                                                                                          )
+                                                                                                                                                                                                                                                                                                                                          inp
+                                                                                                                                                                                                                                                                                                                                          (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure onException Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                                                                                                                                                                            )
+                                                                                                                                                                                                                                                                                                                            cs
+                                                                                                                                                                                                                                                                                                                            Data.Map.Internal.Tip
+                                                                                                                                                                                                                                                                                                            else
+                                                                                                                                                                                                                                                                                                              let _ = "checkToken.fail"
+                                                                                                                                                                                                                                                                                                               in let failExp =
+                                                                                                                                                                                                                                                                                                                        Data.Set.Internal.Bin
+                                                                                                                                                                                                                                                                                                                          1
+                                                                                                                                                                                                                                                                                                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                                                                                                                                              ( case inputToken of
+                                                                                                                                                                                                                                                                                                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'e'
+                                                                                                                                                                                                                                                                                                                              )
+                                                                                                                                                                                                                                                                                                                          )
+                                                                                                                                                                                                                                                                                                                          Data.Set.Internal.Tip
+                                                                                                                                                                                                                                                                                                                          Data.Set.Internal.Tip
+                                                                                                                                                                                                                                                                                                                   in let (#
+                                                                                                                                                                                                                                                                                                                            farInp,
+                                                                                                                                                                                                                                                                                                                            farExp
+                                                                                                                                                                                                                                                                                                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp cs of
+                                                                                                                                                                                                                                                                                                                              GHC.Types.LT ->
+                                                                                                                                                                                                                                                                                                                                (#
+                                                                                                                                                                                                                                                                                                                                  cs,
+                                                                                                                                                                                                                                                                                                                                  failExp
+                                                                                                                                                                                                                                                                                                                                #)
+                                                                                                                                                                                                                                                                                                                              GHC.Types.EQ ->
+                                                                                                                                                                                                                                                                                                                                (#
+                                                                                                                                                                                                                                                                                                                                  farInp,
+                                                                                                                                                                                                                                                                                                                                  failExp GHC.Base.<> farExp
+                                                                                                                                                                                                                                                                                                                                #)
+                                                                                                                                                                                                                                                                                                                              GHC.Types.GT ->
+                                                                                                                                                                                                                                                                                                                                (#
+                                                                                                                                                                                                                                                                                                                                  farInp,
+                                                                                                                                                                                                                                                                                                                                  farExp
+                                                                                                                                                                                                                                                                                                                                #)
+                                                                                                                                                                                                                                                                                                                       in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                                                                                                                                                                                                                                    else
+                                                                                                                                                                                                                                                                                      let _ = "checkToken.fail"
+                                                                                                                                                                                                                                                                                       in let failExp =
+                                                                                                                                                                                                                                                                                                Data.Set.Internal.Bin
+                                                                                                                                                                                                                                                                                                  1
+                                                                                                                                                                                                                                                                                                  ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                                                                                                                      ( case inputToken of
+                                                                                                                                                                                                                                                                                                          (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'l'
+                                                                                                                                                                                                                                                                                                      )
+                                                                                                                                                                                                                                                                                                  )
+                                                                                                                                                                                                                                                                                                  Data.Set.Internal.Tip
+                                                                                                                                                                                                                                                                                                  Data.Set.Internal.Tip
+                                                                                                                                                                                                                                                                                           in let (#
+                                                                                                                                                                                                                                                                                                    farInp,
+                                                                                                                                                                                                                                                                                                    farExp
+                                                                                                                                                                                                                                                                                                    #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp cs of
+                                                                                                                                                                                                                                                                                                      GHC.Types.LT ->
+                                                                                                                                                                                                                                                                                                        (#
+                                                                                                                                                                                                                                                                                                          cs,
+                                                                                                                                                                                                                                                                                                          failExp
+                                                                                                                                                                                                                                                                                                        #)
+                                                                                                                                                                                                                                                                                                      GHC.Types.EQ ->
+                                                                                                                                                                                                                                                                                                        (#
+                                                                                                                                                                                                                                                                                                          farInp,
+                                                                                                                                                                                                                                                                                                          failExp GHC.Base.<> farExp
+                                                                                                                                                                                                                                                                                                        #)
+                                                                                                                                                                                                                                                                                                      GHC.Types.GT ->
+                                                                                                                                                                                                                                                                                                        (#
+                                                                                                                                                                                                                                                                                                          farInp,
+                                                                                                                                                                                                                                                                                                          farExp
+                                                                                                                                                                                                                                                                                                        #)
+                                                                                                                                                                                                                                                                                               in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                                                                                                                                                                                                            else
+                                                                                                                                                                                                                                                              let _ = "checkToken.fail"
+                                                                                                                                                                                                                                                               in let failExp =
+                                                                                                                                                                                                                                                                        Data.Set.Internal.Bin
+                                                                                                                                                                                                                                                                          1
+                                                                                                                                                                                                                                                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                                                                                              ( case inputToken of
+                                                                                                                                                                                                                                                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'i'
+                                                                                                                                                                                                                                                                              )
+                                                                                                                                                                                                                                                                          )
+                                                                                                                                                                                                                                                                          Data.Set.Internal.Tip
+                                                                                                                                                                                                                                                                          Data.Set.Internal.Tip
+                                                                                                                                                                                                                                                                   in let (#
+                                                                                                                                                                                                                                                                            farInp,
+                                                                                                                                                                                                                                                                            farExp
+                                                                                                                                                                                                                                                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp cs of
+                                                                                                                                                                                                                                                                              GHC.Types.LT ->
+                                                                                                                                                                                                                                                                                (#
+                                                                                                                                                                                                                                                                                  cs,
+                                                                                                                                                                                                                                                                                  failExp
+                                                                                                                                                                                                                                                                                #)
+                                                                                                                                                                                                                                                                              GHC.Types.EQ ->
+                                                                                                                                                                                                                                                                                (#
+                                                                                                                                                                                                                                                                                  farInp,
+                                                                                                                                                                                                                                                                                  failExp GHC.Base.<> farExp
+                                                                                                                                                                                                                                                                                #)
+                                                                                                                                                                                                                                                                              GHC.Types.GT ->
+                                                                                                                                                                                                                                                                                (#
+                                                                                                                                                                                                                                                                                  farInp,
+                                                                                                                                                                                                                                                                                  farExp
+                                                                                                                                                                                                                                                                                #)
+                                                                                                                                                                                                                                                                       in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                                                                                                                                                                                    else
+                                                                                                                                                                                                                                      let _ = "checkToken.fail"
+                                                                                                                                                                                                                                       in let failExp =
+                                                                                                                                                                                                                                                Data.Set.Internal.Bin
+                                                                                                                                                                                                                                                  1
+                                                                                                                                                                                                                                                  ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                                                                      ( case inputToken of
+                                                                                                                                                                                                                                                          (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'h'
+                                                                                                                                                                                                                                                      )
+                                                                                                                                                                                                                                                  )
+                                                                                                                                                                                                                                                  Data.Set.Internal.Tip
+                                                                                                                                                                                                                                                  Data.Set.Internal.Tip
+                                                                                                                                                                                                                                           in let (#
+                                                                                                                                                                                                                                                    farInp,
+                                                                                                                                                                                                                                                    farExp
+                                                                                                                                                                                                                                                    #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp cs of
+                                                                                                                                                                                                                                                      GHC.Types.LT ->
+                                                                                                                                                                                                                                                        (#
+                                                                                                                                                                                                                                                          cs,
+                                                                                                                                                                                                                                                          failExp
+                                                                                                                                                                                                                                                        #)
+                                                                                                                                                                                                                                                      GHC.Types.EQ ->
+                                                                                                                                                                                                                                                        (#
+                                                                                                                                                                                                                                                          farInp,
+                                                                                                                                                                                                                                                          failExp GHC.Base.<> farExp
+                                                                                                                                                                                                                                                        #)
+                                                                                                                                                                                                                                                      GHC.Types.GT ->
+                                                                                                                                                                                                                                                        (#
+                                                                                                                                                                                                                                                          farInp,
+                                                                                                                                                                                                                                                          farExp
+                                                                                                                                                                                                                                                        #)
+                                                                                                                                                                                                                                               in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                                                                                                                                                            else
+                                                                                                                                                                                                              let _ = "checkToken.fail"
+                                                                                                                                                                                                               in let failExp =
+                                                                                                                                                                                                                        Data.Set.Internal.Bin
+                                                                                                                                                                                                                          1
+                                                                                                                                                                                                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                                              ( case inputToken of
+                                                                                                                                                                                                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'w'
+                                                                                                                                                                                                                              )
+                                                                                                                                                                                                                          )
+                                                                                                                                                                                                                          Data.Set.Internal.Tip
+                                                                                                                                                                                                                          Data.Set.Internal.Tip
+                                                                                                                                                                                                                   in let (#
+                                                                                                                                                                                                                            farInp,
+                                                                                                                                                                                                                            farExp
+                                                                                                                                                                                                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                                                                                                              GHC.Types.LT ->
+                                                                                                                                                                                                                                (#
+                                                                                                                                                                                                                                  inp,
+                                                                                                                                                                                                                                  failExp
+                                                                                                                                                                                                                                #)
+                                                                                                                                                                                                                              GHC.Types.EQ ->
+                                                                                                                                                                                                                                (#
+                                                                                                                                                                                                                                  farInp,
+                                                                                                                                                                                                                                  failExp GHC.Base.<> farExp
+                                                                                                                                                                                                                                #)
+                                                                                                                                                                                                                              GHC.Types.GT ->
+                                                                                                                                                                                                                                (#
+                                                                                                                                                                                                                                  farInp,
+                                                                                                                                                                                                                                  farExp
+                                                                                                                                                                                                                                #)
+                                                                                                                                                                                                                       in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                                                                                                                else
+                                                                                                                                                                                                  let _ = "checkHorizon.newCheck.fail"
+                                                                                                                                                                                                   in let failExp =
+                                                                                                                                                                                                            Data.Set.Internal.Bin
+                                                                                                                                                                                                              1
+                                                                                                                                                                                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                                  ( case inputToken of
+                                                                                                                                                                                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 7
+                                                                                                                                                                                                                  )
+                                                                                                                                                                                                              )
+                                                                                                                                                                                                              Data.Set.Internal.Tip
+                                                                                                                                                                                                              Data.Set.Internal.Tip
+                                                                                                                                                                                                       in let (#
+                                                                                                                                                                                                                farInp,
+                                                                                                                                                                                                                farExp
+                                                                                                                                                                                                                #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                                                                                                  GHC.Types.LT ->
+                                                                                                                                                                                                                    (#
+                                                                                                                                                                                                                      inp,
+                                                                                                                                                                                                                      failExp
+                                                                                                                                                                                                                    #)
+                                                                                                                                                                                                                  GHC.Types.EQ ->
+                                                                                                                                                                                                                    (#
+                                                                                                                                                                                                                      farInp,
+                                                                                                                                                                                                                      failExp GHC.Base.<> farExp
+                                                                                                                                                                                                                    #)
+                                                                                                                                                                                                                  GHC.Types.GT ->
+                                                                                                                                                                                                                    (#
+                                                                                                                                                                                                                      farInp,
+                                                                                                                                                                                                                      farExp
+                                                                                                                                                                                                                    #)
+                                                                                                                                                                                                           in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                                                                else
+                                                                                                                                                  let _ = "choicesBranch.else"
+                                                                                                                                                   in onException callerInput Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                                                       in let _ = "pushValue"
+                                                                                                                           in let _ = "catch ExceptionFailure checkedHorizon=0"
+                                                                                                                               in let onException =
+                                                                                                                                        let _ = "onException"
+                                                                                                                                         in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                                                                              let _ = "loadInput checkedHorizon=0"
+                                                                                                                                               in let _ = "checkHorizon.noCheck"
+                                                                                                                                                   in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure callerInput farInp farExp
+                                                                                                                                   in let _ = "pushValue"
+                                                                                                                                       in let _ = "comment: satisfy ((GHC.Classes.==) 'i')"
+                                                                                                                                           in let inp = callerInput
+                                                                                                                                               in let readFail = onException
+                                                                                                                                                   in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=2"
+                                                                                                                                                       in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 inp)
+                                                                                                                                                            then
+                                                                                                                                                              let _ = "checkToken"
+                                                                                                                                                               in let !(#
+                                                                                                                                                                         c,
+                                                                                                                                                                         cs
+                                                                                                                                                                         #) = readNext inp
+                                                                                                                                                                   in if (GHC.Classes.==) 'i' c
+                                                                                                                                                                        then
+                                                                                                                                                                          let _ = "lift2Value checkedHorizon=2"
+                                                                                                                                                                           in let _ = "comment: satisfy ((GHC.Classes.==) 'f')"
+                                                                                                                                                                               in let _ = "checkHorizon.oldCheck: checkedHorizon=2"
+                                                                                                                                                                                   in let _ = "checkToken"
+                                                                                                                                                                                       in let !(#
+                                                                                                                                                                                                 c,
+                                                                                                                                                                                                 cs
+                                                                                                                                                                                                 #) = readNext cs
+                                                                                                                                                                                           in if (GHC.Classes.==) 'f' c
+                                                                                                                                                                                                then
+                                                                                                                                                                                                  let _ = "lift2Value checkedHorizon=1"
+                                                                                                                                                                                                   in let _ = "commit"
+                                                                                                                                                                                                       in let _ = "lift2Value checkedHorizon=1"
+                                                                                                                                                                                                           in name
+                                                                                                                                                                                                                ( let _ = "onReturn"
+                                                                                                                                                                                                                   in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                        let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                         in let _ = "commit"
+                                                                                                                                                                                                                             in let _ = "resume"
+                                                                                                                                                                                                                                 in join
+                                                                                                                                                                                                                                      farInp
+                                                                                                                                                                                                                                      farExp
+                                                                                                                                                                                                                                      ( let _ = "resume.genCode"
+                                                                                                                                                                                                                                         in v
+                                                                                                                                                                                                                                      )
+                                                                                                                                                                                                                                      inp
+                                                                                                                                                                                                                )
+                                                                                                                                                                                                                cs
+                                                                                                                                                                                                                Data.Map.Internal.Tip
+                                                                                                                                                                                                else
+                                                                                                                                                                                                  let _ = "checkToken.fail"
+                                                                                                                                                                                                   in let failExp =
+                                                                                                                                                                                                            Data.Set.Internal.Bin
+                                                                                                                                                                                                              1
+                                                                                                                                                                                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                                  ( case inputToken of
+                                                                                                                                                                                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'f'
+                                                                                                                                                                                                                  )
+                                                                                                                                                                                                              )
+                                                                                                                                                                                                              Data.Set.Internal.Tip
+                                                                                                                                                                                                              Data.Set.Internal.Tip
+                                                                                                                                                                                                       in let (#
+                                                                                                                                                                                                                farInp,
+                                                                                                                                                                                                                farExp
+                                                                                                                                                                                                                #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp cs of
+                                                                                                                                                                                                                  GHC.Types.LT ->
+                                                                                                                                                                                                                    (#
+                                                                                                                                                                                                                      cs,
+                                                                                                                                                                                                                      failExp
+                                                                                                                                                                                                                    #)
+                                                                                                                                                                                                                  GHC.Types.EQ ->
+                                                                                                                                                                                                                    (#
+                                                                                                                                                                                                                      farInp,
+                                                                                                                                                                                                                      failExp GHC.Base.<> farExp
+                                                                                                                                                                                                                    #)
+                                                                                                                                                                                                                  GHC.Types.GT ->
+                                                                                                                                                                                                                    (#
+                                                                                                                                                                                                                      farInp,
+                                                                                                                                                                                                                      farExp
+                                                                                                                                                                                                                    #)
+                                                                                                                                                                                                           in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                                                                                                                        else
+                                                                                                                                                                          let _ = "checkToken.fail"
+                                                                                                                                                                           in let failExp =
+                                                                                                                                                                                    Data.Set.Internal.Bin
+                                                                                                                                                                                      1
+                                                                                                                                                                                      ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                          ( case inputToken of
+                                                                                                                                                                                              (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'i'
+                                                                                                                                                                                          )
+                                                                                                                                                                                      )
+                                                                                                                                                                                      Data.Set.Internal.Tip
+                                                                                                                                                                                      Data.Set.Internal.Tip
+                                                                                                                                                                               in let (#
+                                                                                                                                                                                        farInp,
+                                                                                                                                                                                        farExp
+                                                                                                                                                                                        #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                                                                          GHC.Types.LT ->
+                                                                                                                                                                                            (#
+                                                                                                                                                                                              inp,
+                                                                                                                                                                                              failExp
+                                                                                                                                                                                            #)
+                                                                                                                                                                                          GHC.Types.EQ ->
+                                                                                                                                                                                            (#
+                                                                                                                                                                                              farInp,
+                                                                                                                                                                                              failExp GHC.Base.<> farExp
+                                                                                                                                                                                            #)
+                                                                                                                                                                                          GHC.Types.GT ->
+                                                                                                                                                                                            (#
+                                                                                                                                                                                              farInp,
+                                                                                                                                                                                              farExp
+                                                                                                                                                                                            #)
+                                                                                                                                                                                   in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                                                                            else
+                                                                                                                                                              let _ = "checkHorizon.newCheck.fail"
+                                                                                                                                                               in let failExp =
+                                                                                                                                                                        Data.Set.Internal.Bin
+                                                                                                                                                                          1
+                                                                                                                                                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                              ( case inputToken of
+                                                                                                                                                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
+                                                                                                                                                                              )
+                                                                                                                                                                          )
+                                                                                                                                                                          Data.Set.Internal.Tip
+                                                                                                                                                                          Data.Set.Internal.Tip
+                                                                                                                                                                   in let (#
+                                                                                                                                                                            farInp,
+                                                                                                                                                                            farExp
+                                                                                                                                                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                                                              GHC.Types.LT ->
+                                                                                                                                                                                (#
+                                                                                                                                                                                  inp,
+                                                                                                                                                                                  failExp
+                                                                                                                                                                                #)
+                                                                                                                                                                              GHC.Types.EQ ->
+                                                                                                                                                                                (#
+                                                                                                                                                                                  farInp,
+                                                                                                                                                                                  failExp GHC.Base.<> farExp
+                                                                                                                                                                                #)
+                                                                                                                                                                              GHC.Types.GT ->
+                                                                                                                                                                                (#
+                                                                                                                                                                                  farInp,
+                                                                                                                                                                                  farExp
+                                                                                                                                                                                #)
+                                                                                                                                                                       in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                     in let _ = "jump"
+                                                                                                         in loop callerOnReturn inp (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                              )
+                                                                              cs
+                                                                              (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                      else
+                                                                        let _ = "checkToken.fail"
+                                                                         in let failExp =
+                                                                                  Data.Set.Internal.Bin
+                                                                                    1
+                                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                        ( case inputToken of
+                                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken '{'
+                                                                                        )
+                                                                                    )
+                                                                                    Data.Set.Internal.Tip
+                                                                                    Data.Set.Internal.Tip
+                                                                             in let (#
+                                                                                      farInp,
+                                                                                      farExp
+                                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                        GHC.Types.LT ->
+                                                                                          (#
+                                                                                            inp,
+                                                                                            failExp
+                                                                                          #)
+                                                                                        GHC.Types.EQ ->
+                                                                                          (#
+                                                                                            init,
+                                                                                            failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                          #)
+                                                                                        GHC.Types.GT ->
+                                                                                          (#
+                                                                                            init,
+                                                                                            Data.Set.Internal.empty
+                                                                                          #)
+                                                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                          else
+                                                            let _ = "checkHorizon.newCheck.fail"
+                                                             in let failExp =
+                                                                      Data.Set.Internal.Bin
+                                                                        1
+                                                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                            ( case inputToken of
+                                                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 4
+                                                                            )
+                                                                        )
+                                                                        Data.Set.Internal.Tip
+                                                                        Data.Set.Internal.Tip
+                                                                 in let (#
+                                                                          farInp,
+                                                                          farExp
+                                                                          #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                            GHC.Types.LT ->
+                                                                              (#
+                                                                                inp,
+                                                                                failExp
+                                                                              #)
+                                                                            GHC.Types.EQ ->
+                                                                              (#
+                                                                                init,
+                                                                                failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                              #)
+                                                                            GHC.Types.GT ->
+                                                                              (#
+                                                                                init,
+                                                                                Data.Set.Internal.empty
+                                                                              #)
+                                                                     in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                  name = \(!callerOnReturn) (!callerInput) (!callerOnExceptionStackByLabel) ->
+                                    let _ = "pushValue"
+                                     in let _ = "comment: satisfy GHC.Unicode.isSpace"
+                                         in let inp = callerInput
+                                             in let readFail = Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure callerOnExceptionStackByLabel
+                                                 in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=1"
+                                                     in if readMore inp
+                                                          then
+                                                            let _ = "checkToken"
+                                                             in let !(#
+                                                                       c,
+                                                                       cs
+                                                                       #) = readNext inp
+                                                                 in if GHC.Unicode.isSpace c
+                                                                      then
+                                                                        let _ = "lift2Value checkedHorizon=1"
+                                                                         in name
+                                                                              ( let _ = "onReturn"
+                                                                                 in \farInp farExp v (!inp) ->
+                                                                                      let _ = "lift2Value checkedHorizon=0"
+                                                                                       in let _ = "resume"
+                                                                                           in callerOnReturn
+                                                                                                farInp
+                                                                                                farExp
+                                                                                                ( let _ = "resume.genCode"
+                                                                                                   in v
+                                                                                                )
+                                                                                                inp
+                                                                              )
+                                                                              cs
+                                                                              Data.Map.Internal.Tip
+                                                                      else
+                                                                        let _ = "checkToken.fail"
+                                                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp init Data.Set.Internal.empty
+                                                          else
+                                                            let _ = "checkHorizon.newCheck.fail"
+                                                             in let failExp =
+                                                                      Data.Set.Internal.Bin
+                                                                        1
+                                                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                            ( case inputToken of
+                                                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
+                                                                            )
+                                                                        )
+                                                                        Data.Set.Internal.Tip
+                                                                        Data.Set.Internal.Tip
+                                                                 in let (#
+                                                                          farInp,
+                                                                          farExp
+                                                                          #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                            GHC.Types.LT ->
+                                                                              (#
+                                                                                inp,
+                                                                                failExp
+                                                                              #)
+                                                                            GHC.Types.EQ ->
+                                                                              (#
+                                                                                init,
+                                                                                failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                              #)
+                                                                            GHC.Types.GT ->
+                                                                              (#
+                                                                                init,
+                                                                                Data.Set.Internal.empty
+                                                                              #)
+                                                                     in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                  name = \(!callerOnReturn) (!callerInput) (!callerOnExceptionStackByLabel) ->
+                                    let _ = "pushValue"
+                                     in let _ = "resume"
+                                         in callerOnReturn
+                                              init
+                                              Data.Set.Internal.empty
+                                              ( let _ = "resume.genCode"
+                                                 in GHC.Tuple . ()
+                                              )
+                                              callerInput
+                                  name = \(!callerOnReturn) (!callerInput) (!callerOnExceptionStackByLabel) ->
+                                    let _ = "pushValue"
+                                     in let _ = "resume"
+                                         in callerOnReturn
+                                              init
+                                              Data.Set.Internal.empty
+                                              ( let _ = "resume.genCode"
+                                                 in GHC.Tuple . ()
+                                              )
+                                              callerInput
+                                  name = \(!callerOnReturn) (!callerInput) (!callerOnExceptionStackByLabel) ->
+                                    let _ = "pushValue"
+                                     in let _ = "resume"
+                                         in callerOnReturn
+                                              init
+                                              Data.Set.Internal.empty
+                                              ( let _ = "resume.genCode"
+                                                 in \x -> \x -> x
+                                              )
+                                              callerInput
+                               in let _ = "pushValue"
+                                   in name
+                                        ( let _ = "onReturn"
+                                           in \farInp farExp v (!inp) ->
+                                                let _ = "lift2Value checkedHorizon=0"
+                                                 in let _ = "pushValue"
+                                                     in do
+                                                          let dupv = \x -> x
+                                                          reg <- GHC.STRef.newSTRef dupv
+                                                          let _ = "iter"
+                                                           in let onException loopInput =
+                                                                    let _ = "onException"
+                                                                     in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                          let _ = "comment: raiseAgainIfConsumed"
+                                                                           in let _ = "saveInput checkedHorizon=0"
+                                                                               in let _ = "lift2Value checkedHorizon=0"
+                                                                                   in if ( \( Data.Text.Internal.Text
+                                                                                                _
+                                                                                                i
+                                                                                                _
+                                                                                              )
+                                                                                            ( Data.Text.Internal.Text
+                                                                                                _
+                                                                                                j
+                                                                                                _
+                                                                                              ) -> i GHC.Classes.== j
+                                                                                         )
+                                                                                        loopInput
+                                                                                        failInp
+                                                                                        then
+                                                                                          let _ = "choicesBranch checkedHorizon=0"
+                                                                                           in do
+                                                                                                sr <- GHC.STRef.readSTRef reg
+                                                                                                name
+                                                                                                  ( let _ = "onReturn"
+                                                                                                     in \farInp farExp v (!inp) ->
+                                                                                                          let _ = "lift2Value checkedHorizon=0"
+                                                                                                           in let _ = "lift2Value checkedHorizon=0"
+                                                                                                               in name
+                                                                                                                    ( let _ = "onReturn"
+                                                                                                                       in \farInp farExp v (!inp) ->
+                                                                                                                            let _ = "lift2Value checkedHorizon=0"
+                                                                                                                             in let join = \farInp farExp v (!inp) ->
+                                                                                                                                      let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                       in let _ = "resume"
+                                                                                                                                           in finalRet
+                                                                                                                                                farInp
+                                                                                                                                                farExp
+                                                                                                                                                ( let _ = "resume.genCode"
+                                                                                                                                                   in GHC.Show.show v
+                                                                                                                                                )
+                                                                                                                                                inp
+                                                                                                                                 in let _ = "catch ExceptionFailure checkedHorizon=0"
+                                                                                                                                     in let onException =
+                                                                                                                                              let _ = "onException"
+                                                                                                                                               in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                                                                                    let _ = "comment: raiseAgainIfConsumed"
+                                                                                                                                                     in let _ = "saveInput checkedHorizon=0"
+                                                                                                                                                         in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                             in if ( \( Data.Text.Internal.Text
+                                                                                                                                                                          _
+                                                                                                                                                                          i
+                                                                                                                                                                          _
+                                                                                                                                                                        )
+                                                                                                                                                                      ( Data.Text.Internal.Text
+                                                                                                                                                                          _
+                                                                                                                                                                          j
+                                                                                                                                                                          _
+                                                                                                                                                                        ) -> i GHC.Classes.== j
+                                                                                                                                                                   )
+                                                                                                                                                                  inp
+                                                                                                                                                                  failInp
+                                                                                                                                                                  then
+                                                                                                                                                                    let _ = "choicesBranch checkedHorizon=0"
+                                                                                                                                                                     in let _ = "comment: eof.fail"
+                                                                                                                                                                         in let failExp = Data.Set.Internal.Bin 1 (Symantic.Parser.Grammar.Combinators.SomeFailure Symantic.Parser.Grammar.Combinators.FailureEnd) Data.Set.Internal.Tip Data.Set.Internal.Tip
+                                                                                                                                                                             in let (#
+                                                                                                                                                                                      farInp,
+                                                                                                                                                                                      farExp
+                                                                                                                                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp failInp of
+                                                                                                                                                                                        GHC.Types.LT ->
+                                                                                                                                                                                          (#
+                                                                                                                                                                                            failInp,
+                                                                                                                                                                                            failExp
+                                                                                                                                                                                          #)
+                                                                                                                                                                                        GHC.Types.EQ ->
+                                                                                                                                                                                          (#
+                                                                                                                                                                                            farInp,
+                                                                                                                                                                                            failExp GHC.Base.<> farExp
+                                                                                                                                                                                          #)
+                                                                                                                                                                                        GHC.Types.GT ->
+                                                                                                                                                                                          (#
+                                                                                                                                                                                            farInp,
+                                                                                                                                                                                            farExp
+                                                                                                                                                                                          #)
+                                                                                                                                                                                 in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                                                                                                  else
+                                                                                                                                                                    let _ = "choicesBranch.else"
+                                                                                                                                                                     in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                                                                         in let _ = "comment: negLook"
+                                                                                                                                             in let _ = "catch ExceptionFailure checkedHorizon=0"
+                                                                                                                                                 in let onException =
+                                                                                                                                                          let _ = "onException"
+                                                                                                                                                           in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                                                                                                let _ = "comment: negLook.reset"
+                                                                                                                                                                 in let _ = "loadInput checkedHorizon=0"
+                                                                                                                                                                     in let _ = "checkHorizon.noCheck"
+                                                                                                                                                                         in let _ = "pushValue"
+                                                                                                                                                                             in let _ = "commit"
+                                                                                                                                                                                 in let _ = "resume"
+                                                                                                                                                                                     in join
+                                                                                                                                                                                          farInp
+                                                                                                                                                                                          farExp
+                                                                                                                                                                                          ( let _ = "resume.genCode"
+                                                                                                                                                                                             in GHC.Tuple . ()
+                                                                                                                                                                                          )
+                                                                                                                                                                                          inp
+                                                                                                                                                     in let _ = "comment: negLook.ahead"
+                                                                                                                                                         in let _ = "saveInput checkedHorizon=0"
+                                                                                                                                                             in let _ = "comment: satisfy ((\\x_0 -> \\x_1 -> x_0) GHC.Types.True)"
+                                                                                                                                                                 in let inp = inp
+                                                                                                                                                                     in let readFail = onException
+                                                                                                                                                                         in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=1"
+                                                                                                                                                                             in if readMore inp
+                                                                                                                                                                                  then
+                                                                                                                                                                                    let _ = "checkToken"
+                                                                                                                                                                                     in let !(#
+                                                                                                                                                                                               c,
+                                                                                                                                                                                               cs
+                                                                                                                                                                                               #) = readNext inp
+                                                                                                                                                                                         in let _ = "popValue"
+                                                                                                                                                                                             in let _ = "commit"
+                                                                                                                                                                                                 in let _ = "loadInput checkedHorizon=0"
+                                                                                                                                                                                                     in let _ = "checkHorizon.noCheck"
+                                                                                                                                                                                                         in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                                                                                                  else
+                                                                                                                                                                                    let _ = "checkHorizon.newCheck.fail"
+                                                                                                                                                                                     in let failExp =
+                                                                                                                                                                                              Data.Set.Internal.Bin
+                                                                                                                                                                                                1
+                                                                                                                                                                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                    ( case inputToken of
+                                                                                                                                                                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
+                                                                                                                                                                                                    )
+                                                                                                                                                                                                )
+                                                                                                                                                                                                Data.Set.Internal.Tip
+                                                                                                                                                                                                Data.Set.Internal.Tip
+                                                                                                                                                                                         in let (#
+                                                                                                                                                                                                  farInp,
+                                                                                                                                                                                                  farExp
+                                                                                                                                                                                                  #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                                                                                    GHC.Types.LT ->
+                                                                                                                                                                                                      (#
+                                                                                                                                                                                                        inp,
+                                                                                                                                                                                                        failExp
+                                                                                                                                                                                                      #)
+                                                                                                                                                                                                    GHC.Types.EQ ->
+                                                                                                                                                                                                      (#
+                                                                                                                                                                                                        farInp,
+                                                                                                                                                                                                        failExp GHC.Base.<> farExp
+                                                                                                                                                                                                      #)
+                                                                                                                                                                                                    GHC.Types.GT ->
+                                                                                                                                                                                                      (#
+                                                                                                                                                                                                        farInp,
+                                                                                                                                                                                                        farExp
+                                                                                                                                                                                                      #)
+                                                                                                                                                                                             in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                                    )
+                                                                                                                    inp
+                                                                                                                    Data.Map.Internal.Tip
+                                                                                                  )
+                                                                                                  failInp
+                                                                                                  Data.Map.Internal.Tip
+                                                                                        else
+                                                                                          let _ = "choicesBranch.else"
+                                                                                           in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                  loop = \_callerOnReturn callerInput callerOnExceptionStackByLabel ->
+                                                                    let _ = "pushValue"
+                                                                     in let _ = "catch ExceptionFailure checkedHorizon=0"
+                                                                         in let onException =
+                                                                                  let _ = "onException"
+                                                                                   in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                        let _ = "loadInput checkedHorizon=0"
+                                                                                         in let _ = "checkHorizon.noCheck"
+                                                                                             in onException callerInput Symantic.Parser.Grammar.Combinators.ExceptionFailure callerInput farInp farExp
+                                                                             in let _ = "pushValue"
+                                                                                 in let _ = "comment: satisfy ((GHC.Classes.==) 'f')"
+                                                                                     in let inp = callerInput
+                                                                                         in let readFail = onException
+                                                                                             in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=18"
+                                                                                                 in if readMore (Symantic.Parser.Machine.Input.shiftRightText 17 inp)
+                                                                                                      then
+                                                                                                        let _ = "checkToken"
+                                                                                                         in let !(#
+                                                                                                                   c,
+                                                                                                                   cs
+                                                                                                                   #) = readNext inp
+                                                                                                             in if (GHC.Classes.==) 'f' c
+                                                                                                                  then
+                                                                                                                    let _ = "lift2Value checkedHorizon=18"
+                                                                                                                     in let _ = "comment: satisfy ((GHC.Classes.==) 'u')"
+                                                                                                                         in let _ = "checkHorizon.oldCheck: checkedHorizon=18"
+                                                                                                                             in let _ = "checkToken"
+                                                                                                                                 in let !(#
+                                                                                                                                           c,
+                                                                                                                                           cs
+                                                                                                                                           #) = readNext cs
+                                                                                                                                     in if (GHC.Classes.==) 'u' c
+                                                                                                                                          then
+                                                                                                                                            let _ = "lift2Value checkedHorizon=17"
+                                                                                                                                             in let _ = "comment: satisfy ((GHC.Classes.==) 'n')"
+                                                                                                                                                 in let _ = "checkHorizon.oldCheck: checkedHorizon=17"
+                                                                                                                                                     in let _ = "checkToken"
+                                                                                                                                                         in let !(#
+                                                                                                                                                                   c,
+                                                                                                                                                                   cs
+                                                                                                                                                                   #) = readNext cs
+                                                                                                                                                             in if (GHC.Classes.==) 'n' c
+                                                                                                                                                                  then
+                                                                                                                                                                    let _ = "lift2Value checkedHorizon=16"
+                                                                                                                                                                     in let _ = "comment: satisfy ((GHC.Classes.==) 'c')"
+                                                                                                                                                                         in let _ = "checkHorizon.oldCheck: checkedHorizon=16"
+                                                                                                                                                                             in let _ = "checkToken"
+                                                                                                                                                                                 in let !(#
+                                                                                                                                                                                           c,
+                                                                                                                                                                                           cs
+                                                                                                                                                                                           #) = readNext cs
+                                                                                                                                                                                     in if (GHC.Classes.==) 'c' c
+                                                                                                                                                                                          then
+                                                                                                                                                                                            let _ = "lift2Value checkedHorizon=15"
+                                                                                                                                                                                             in let _ = "comment: satisfy ((GHC.Classes.==) 't')"
+                                                                                                                                                                                                 in let _ = "checkHorizon.oldCheck: checkedHorizon=15"
+                                                                                                                                                                                                     in let _ = "checkToken"
+                                                                                                                                                                                                         in let !(#
+                                                                                                                                                                                                                   c,
+                                                                                                                                                                                                                   cs
+                                                                                                                                                                                                                   #) = readNext cs
+                                                                                                                                                                                                             in if (GHC.Classes.==) 't' c
+                                                                                                                                                                                                                  then
+                                                                                                                                                                                                                    let _ = "lift2Value checkedHorizon=14"
+                                                                                                                                                                                                                     in let _ = "comment: satisfy ((GHC.Classes.==) 'i')"
+                                                                                                                                                                                                                         in let _ = "checkHorizon.oldCheck: checkedHorizon=14"
+                                                                                                                                                                                                                             in let _ = "checkToken"
+                                                                                                                                                                                                                                 in let !(#
+                                                                                                                                                                                                                                           c,
+                                                                                                                                                                                                                                           cs
+                                                                                                                                                                                                                                           #) = readNext cs
+                                                                                                                                                                                                                                     in if (GHC.Classes.==) 'i' c
+                                                                                                                                                                                                                                          then
+                                                                                                                                                                                                                                            let _ = "lift2Value checkedHorizon=13"
+                                                                                                                                                                                                                                             in let _ = "comment: satisfy ((GHC.Classes.==) 'o')"
+                                                                                                                                                                                                                                                 in let _ = "checkHorizon.oldCheck: checkedHorizon=13"
+                                                                                                                                                                                                                                                     in let _ = "checkToken"
+                                                                                                                                                                                                                                                         in let !(#
+                                                                                                                                                                                                                                                                   c,
+                                                                                                                                                                                                                                                                   cs
+                                                                                                                                                                                                                                                                   #) = readNext cs
+                                                                                                                                                                                                                                                             in if (GHC.Classes.==) 'o' c
+                                                                                                                                                                                                                                                                  then
+                                                                                                                                                                                                                                                                    let _ = "lift2Value checkedHorizon=12"
+                                                                                                                                                                                                                                                                     in let _ = "comment: satisfy ((GHC.Classes.==) 'n')"
+                                                                                                                                                                                                                                                                         in let _ = "checkHorizon.oldCheck: checkedHorizon=12"
+                                                                                                                                                                                                                                                                             in let _ = "checkToken"
+                                                                                                                                                                                                                                                                                 in let !(#
+                                                                                                                                                                                                                                                                                           c,
+                                                                                                                                                                                                                                                                                           cs
+                                                                                                                                                                                                                                                                                           #) = readNext cs
+                                                                                                                                                                                                                                                                                     in if (GHC.Classes.==) 'n' c
+                                                                                                                                                                                                                                                                                          then
+                                                                                                                                                                                                                                                                                            let _ = "lift2Value checkedHorizon=11"
+                                                                                                                                                                                                                                                                                             in let _ = "commit"
+                                                                                                                                                                                                                                                                                                 in let _ = "lift2Value checkedHorizon=11"
+                                                                                                                                                                                                                                                                                                     in name
+                                                                                                                                                                                                                                                                                                          ( let _ = "onReturn"
+                                                                                                                                                                                                                                                                                                             in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                                                                                                  let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                                   in name
+                                                                                                                                                                                                                                                                                                                        ( let _ = "onReturn"
+                                                                                                                                                                                                                                                                                                                           in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                                                                                                                let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                                                 in name
+                                                                                                                                                                                                                                                                                                                                      ( let _ = "onReturn"
+                                                                                                                                                                                                                                                                                                                                         in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                                                                                                                              let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                                                               in name
+                                                                                                                                                                                                                                                                                                                                                    ( let _ = "onReturn"
+                                                                                                                                                                                                                                                                                                                                                       in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                                                                                                                                            let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                                                                             in let join = \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                                                                                                                                                      let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                                                                                       in name
+                                                                                                                                                                                                                                                                                                                                                                            ( let _ = "onReturn"
+                                                                                                                                                                                                                                                                                                                                                                               in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                                                                                                                                                                    let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                                                                                                     in name
+                                                                                                                                                                                                                                                                                                                                                                                          ( let _ = "onReturn"
+                                                                                                                                                                                                                                                                                                                                                                                             in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                                                                                                                                                                                  let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                                                                                                                   in do
+                                                                                                                                                                                                                                                                                                                                                                                                        sr <- GHC.STRef.readSTRef reg
+                                                                                                                                                                                                                                                                                                                                                                                                        let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                                                                                                                         in do
+                                                                                                                                                                                                                                                                                                                                                                                                              let dupv = sr
+                                                                                                                                                                                                                                                                                                                                                                                                              GHC.STRef.writeSTRef reg dupv
+                                                                                                                                                                                                                                                                                                                                                                                                              let _ = "jump"
+                                                                                                                                                                                                                                                                                                                                                                                                               in loop (GHC.Err.error "invalid onReturn") inp (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (onException callerInput) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                                                                                                                                                                                                                                          )
+                                                                                                                                                                                                                                                                                                                                                                                          inp
+                                                                                                                                                                                                                                                                                                                                                                                          (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (onException callerInput) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                                                                                                                                                                                                                            )
+                                                                                                                                                                                                                                                                                                                                                                            inp
+                                                                                                                                                                                                                                                                                                                                                                            (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (onException callerInput) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                                                                                                                                                                                                                 in let _ = "catch ExceptionFailure checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                                                                                     in let onException =
+                                                                                                                                                                                                                                                                                                                                                                              let _ = "onException"
+                                                                                                                                                                                                                                                                                                                                                                               in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                                                                                                                                                                                                                                                                                                                    let _ = "comment: raiseAgainIfConsumed"
+                                                                                                                                                                                                                                                                                                                                                                                     in let _ = "saveInput checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                                                                                                         in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                                                                                                             in if ( \( Data.Text.Internal.Text
+                                                                                                                                                                                                                                                                                                                                                                                                          _
+                                                                                                                                                                                                                                                                                                                                                                                                          i
+                                                                                                                                                                                                                                                                                                                                                                                                          _
+                                                                                                                                                                                                                                                                                                                                                                                                        )
+                                                                                                                                                                                                                                                                                                                                                                                                      ( Data.Text.Internal.Text
+                                                                                                                                                                                                                                                                                                                                                                                                          _
+                                                                                                                                                                                                                                                                                                                                                                                                          j
+                                                                                                                                                                                                                                                                                                                                                                                                          _
+                                                                                                                                                                                                                                                                                                                                                                                                        ) -> i GHC.Classes.== j
+                                                                                                                                                                                                                                                                                                                                                                                                   )
+                                                                                                                                                                                                                                                                                                                                                                                                  inp
+                                                                                                                                                                                                                                                                                                                                                                                                  failInp
+                                                                                                                                                                                                                                                                                                                                                                                                  then
+                                                                                                                                                                                                                                                                                                                                                                                                    let _ = "choicesBranch checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                                                                                                                     in name
+                                                                                                                                                                                                                                                                                                                                                                                                          ( let _ = "onReturn"
+                                                                                                                                                                                                                                                                                                                                                                                                             in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                                                                                                                                                                                                  let _ = "resume"
+                                                                                                                                                                                                                                                                                                                                                                                                                   in join
+                                                                                                                                                                                                                                                                                                                                                                                                                        farInp
+                                                                                                                                                                                                                                                                                                                                                                                                                        farExp
+                                                                                                                                                                                                                                                                                                                                                                                                                        ( let _ = "resume.genCode"
+                                                                                                                                                                                                                                                                                                                                                                                                                           in v
+                                                                                                                                                                                                                                                                                                                                                                                                                        )
+                                                                                                                                                                                                                                                                                                                                                                                                                        inp
+                                                                                                                                                                                                                                                                                                                                                                                                          )
+                                                                                                                                                                                                                                                                                                                                                                                                          failInp
+                                                                                                                                                                                                                                                                                                                                                                                                          Data.Map.Internal.Tip
+                                                                                                                                                                                                                                                                                                                                                                                                  else
+                                                                                                                                                                                                                                                                                                                                                                                                    let _ = "choicesBranch.else"
+                                                                                                                                                                                                                                                                                                                                                                                                     in onException callerInput Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                                                                                                                                                                                                                                                                                                         in let _ = "pushValue"
+                                                                                                                                                                                                                                                                                                                                                                             in let _ = "comment: satisfy ((GHC.Classes.==) ':')"
+                                                                                                                                                                                                                                                                                                                                                                                 in let inp = inp
+                                                                                                                                                                                                                                                                                                                                                                                     in let readFail = onException
+                                                                                                                                                                                                                                                                                                                                                                                         in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=8"
+                                                                                                                                                                                                                                                                                                                                                                                             in if readMore (Symantic.Parser.Machine.Input.shiftRightText 7 inp)
+                                                                                                                                                                                                                                                                                                                                                                                                  then
+                                                                                                                                                                                                                                                                                                                                                                                                    let _ = "checkToken"
+                                                                                                                                                                                                                                                                                                                                                                                                     in let !(#
+                                                                                                                                                                                                                                                                                                                                                                                                               c,
+                                                                                                                                                                                                                                                                                                                                                                                                               cs
+                                                                                                                                                                                                                                                                                                                                                                                                               #) = readNext inp
+                                                                                                                                                                                                                                                                                                                                                                                                         in if (GHC.Classes.==) ':' c
+                                                                                                                                                                                                                                                                                                                                                                                                              then
+                                                                                                                                                                                                                                                                                                                                                                                                                let _ = "lift2Value checkedHorizon=8"
+                                                                                                                                                                                                                                                                                                                                                                                                                 in name
+                                                                                                                                                                                                                                                                                                                                                                                                                      ( let _ = "onReturn"
+                                                                                                                                                                                                                                                                                                                                                                                                                         in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                                                                                                                                                                                                              let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                                                                                                                                               in name
+                                                                                                                                                                                                                                                                                                                                                                                                                                    ( let _ = "onReturn"
+                                                                                                                                                                                                                                                                                                                                                                                                                                       in \farInp farExp v (!inp) ->
+                                                                                                                                                                                                                                                                                                                                                                                                                                            let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                                                                                                                                                                                                                                                                                                                             in let _ = "commit"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                 in let _ = "resume"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                     in join
+                                                                                                                                                                                                                                                                                                                                                                                                                                                          farInp
+                                                                                                                                                                                                                                                                                                                                                                                                                                                          farExp
+                                                                                                                                                                                                                                                                                                                                                                                                                                                          ( let _ = "resume.genCode"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                             in GHC.Tuple . ()
+                                                                                                                                                                                                                                                                                                                                                                                                                                                          )
+                                                                                                                                                                                                                                                                                                                                                                                                                                                          inp
+                                                                                                                                                                                                                                                                                                                                                                                                                                    )
+                                                                                                                                                                                                                                                                                                                                                                                                                                    inp
+                                                                                                                                                                                                                                                                                                                                                                                                                                    (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                                                                                                                                                                                                                                                                      )
+                                                                                                                                                                                                                                                                                                                                                                                                                      cs
+                                                                                                                                                                                                                                                                                                                                                                                                                      (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                                                                                                                                                                                                                                                              else
+                                                                                                                                                                                                                                                                                                                                                                                                                let _ = "checkToken.fail"
+                                                                                                                                                                                                                                                                                                                                                                                                                 in let failExp =
+                                                                                                                                                                                                                                                                                                                                                                                                                          Data.Set.Internal.Bin
+                                                                                                                                                                                                                                                                                                                                                                                                                            1
+                                                                                                                                                                                                                                                                                                                                                                                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                                                                                                                                                                                                                                                ( case inputToken of
+                                                                                                                                                                                                                                                                                                                                                                                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken ':'
+                                                                                                                                                                                                                                                                                                                                                                                                                                )
+                                                                                                                                                                                                                                                                                                                                                                                                                            )
+                                                                                                                                                                                                                                                                                                                                                                                                                            Data.Set.Internal.Tip
+                                                                                                                                                                                                                                                                                                                                                                                                                            Data.Set.Internal.Tip
+                                                                                                                                                                                                                                                                                                                                                                                                                     in let (#
+                                                                                                                                                                                                                                                                                                                                                                                                                              farInp,
+                                                                                                                                                                                                                                                                                                                                                                                                                              farExp
+                                                                                                                                                                                                                                                                                                                                                                                                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                                                                                                                                                                                                                                                                                                                GHC.Types.LT ->
+                                                                                                                                                                                                                                                                                                                                                                                                                                  (#
+                                                                                                                                                                                                                                                                                                                                                                                                                                    inp,
+                                                                                                                                                                                                                                                                                                                                                                                                                                    failExp
+                                                                                                                                                                                                                                                                                                                                                                                                                                  #)
+                                                                                                                                                                                                                                                                                                                                                                                                                                GHC.Types.EQ ->
+                                                                                                                                                                                                                                                                                                                                                                                                                                  (#
+                                                                                                                                                                                                                                                                                                                                                                                                                                    farInp,
+                                                                                                                                                                                                                                                                                                                                                                                                                                    failExp GHC.Base.<> farExp
+                                                                                                                                                                                                                                                                                                                                                                                                                                  #)
+                                                                                                                                                                                                                                                                                                                                                                                                                                GHC.Types.GT ->
+                                                                                                                                                                                                                                                                                                                                                                                                                                  (#
+                                                                                                                                                                                                                                                                                                                                                                                                                                    farInp,
+                                                                                                                                                                                                                                                                                                                                                                                                                                    farExp
+                                                                                                                                                                                                                                                                                                                                                                                                                                  #)
+                                                                                                                                                                                                                                                                                                                                                                                                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                                                                                                                                                                                                                                                                                                                  else
+                                                                                                                                                                                                                                                                                                                                                                                                    let _ = "checkHorizon.newCheck.fail"
+                                                                                                                                                                                                                                                                                                                                                                                                     in let failExp =
+                                                                                                                                                                                                                                                                                                                                                                                                              Data.Set.Internal.Bin
+                                                                                                                                                                                                                                                                                                                                                                                                                1
+                                                                                                                                                                                                                                                                                                                                                                                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                                                                                                                                                                                                                                    ( case inputToken of
+                                                                                                                                                                                                                                                                                                                                                                                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 8
+                                                                                                                                                                                                                                                                                                                                                                                                                    )
+                                                                                                                                                                                                                                                                                                                                                                                                                )
+                                                                                                                                                                                                                                                                                                                                                                                                                Data.Set.Internal.Tip
+                                                                                                                                                                                                                                                                                                                                                                                                                Data.Set.Internal.Tip
+                                                                                                                                                                                                                                                                                                                                                                                                         in let (#
+                                                                                                                                                                                                                                                                                                                                                                                                                  farInp,
+                                                                                                                                                                                                                                                                                                                                                                                                                  farExp
+                                                                                                                                                                                                                                                                                                                                                                                                                  #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                                                                                                                                                                                                                                                                                                    GHC.Types.LT ->
+                                                                                                                                                                                                                                                                                                                                                                                                                      (#
+                                                                                                                                                                                                                                                                                                                                                                                                                        inp,
+                                                                                                                                                                                                                                                                                                                                                                                                                        failExp
+                                                                                                                                                                                                                                                                                                                                                                                                                      #)
+                                                                                                                                                                                                                                                                                                                                                                                                                    GHC.Types.EQ ->
+                                                                                                                                                                                                                                                                                                                                                                                                                      (#
+                                                                                                                                                                                                                                                                                                                                                                                                                        farInp,
+                                                                                                                                                                                                                                                                                                                                                                                                                        failExp GHC.Base.<> farExp
+                                                                                                                                                                                                                                                                                                                                                                                                                      #)
+                                                                                                                                                                                                                                                                                                                                                                                                                    GHC.Types.GT ->
+                                                                                                                                                                                                                                                                                                                                                                                                                      (#
+                                                                                                                                                                                                                                                                                                                                                                                                                        farInp,
+                                                                                                                                                                                                                                                                                                                                                                                                                        farExp
+                                                                                                                                                                                                                                                                                                                                                                                                                      #)
+                                                                                                                                                                                                                                                                                                                                                                                                             in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                                                                                                                                                                                                                                                                    )
+                                                                                                                                                                                                                                                                                                                                                    inp
+                                                                                                                                                                                                                                                                                                                                                    (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (onException callerInput) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                                                                                                                                                                                      )
+                                                                                                                                                                                                                                                                                                                                      inp
+                                                                                                                                                                                                                                                                                                                                      (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (onException callerInput) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                                                                                                                                                                        )
+                                                                                                                                                                                                                                                                                                                        inp
+                                                                                                                                                                                                                                                                                                                        (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (onException callerInput) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                                                                                                                                                                                                                                                          )
+                                                                                                                                                                                                                                                                                                          cs
+                                                                                                                                                                                                                                                                                                          Data.Map.Internal.Tip
+                                                                                                                                                                                                                                                                                          else
+                                                                                                                                                                                                                                                                                            let _ = "checkToken.fail"
+                                                                                                                                                                                                                                                                                             in let failExp =
+                                                                                                                                                                                                                                                                                                      Data.Set.Internal.Bin
+                                                                                                                                                                                                                                                                                                        1
+                                                                                                                                                                                                                                                                                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                                                                                                                            ( case inputToken of
+                                                                                                                                                                                                                                                                                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'n'
+                                                                                                                                                                                                                                                                                                            )
+                                                                                                                                                                                                                                                                                                        )
+                                                                                                                                                                                                                                                                                                        Data.Set.Internal.Tip
+                                                                                                                                                                                                                                                                                                        Data.Set.Internal.Tip
+                                                                                                                                                                                                                                                                                                 in let (#
+                                                                                                                                                                                                                                                                                                          farInp,
+                                                                                                                                                                                                                                                                                                          farExp
+                                                                                                                                                                                                                                                                                                          #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp cs of
+                                                                                                                                                                                                                                                                                                            GHC.Types.LT ->
+                                                                                                                                                                                                                                                                                                              (#
+                                                                                                                                                                                                                                                                                                                cs,
+                                                                                                                                                                                                                                                                                                                failExp
+                                                                                                                                                                                                                                                                                                              #)
+                                                                                                                                                                                                                                                                                                            GHC.Types.EQ ->
+                                                                                                                                                                                                                                                                                                              (#
+                                                                                                                                                                                                                                                                                                                farInp,
+                                                                                                                                                                                                                                                                                                                failExp GHC.Base.<> farExp
+                                                                                                                                                                                                                                                                                                              #)
+                                                                                                                                                                                                                                                                                                            GHC.Types.GT ->
+                                                                                                                                                                                                                                                                                                              (#
+                                                                                                                                                                                                                                                                                                                farInp,
+                                                                                                                                                                                                                                                                                                                farExp
+                                                                                                                                                                                                                                                                                                              #)
+                                                                                                                                                                                                                                                                                                     in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                                                                                                                                                                                                                  else
+                                                                                                                                                                                                                                                                    let _ = "checkToken.fail"
+                                                                                                                                                                                                                                                                     in let failExp =
+                                                                                                                                                                                                                                                                              Data.Set.Internal.Bin
+                                                                                                                                                                                                                                                                                1
+                                                                                                                                                                                                                                                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                                                                                                    ( case inputToken of
+                                                                                                                                                                                                                                                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'o'
+                                                                                                                                                                                                                                                                                    )
+                                                                                                                                                                                                                                                                                )
+                                                                                                                                                                                                                                                                                Data.Set.Internal.Tip
+                                                                                                                                                                                                                                                                                Data.Set.Internal.Tip
+                                                                                                                                                                                                                                                                         in let (#
+                                                                                                                                                                                                                                                                                  farInp,
+                                                                                                                                                                                                                                                                                  farExp
+                                                                                                                                                                                                                                                                                  #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp cs of
+                                                                                                                                                                                                                                                                                    GHC.Types.LT ->
+                                                                                                                                                                                                                                                                                      (#
+                                                                                                                                                                                                                                                                                        cs,
+                                                                                                                                                                                                                                                                                        failExp
+                                                                                                                                                                                                                                                                                      #)
+                                                                                                                                                                                                                                                                                    GHC.Types.EQ ->
+                                                                                                                                                                                                                                                                                      (#
+                                                                                                                                                                                                                                                                                        farInp,
+                                                                                                                                                                                                                                                                                        failExp GHC.Base.<> farExp
+                                                                                                                                                                                                                                                                                      #)
+                                                                                                                                                                                                                                                                                    GHC.Types.GT ->
+                                                                                                                                                                                                                                                                                      (#
+                                                                                                                                                                                                                                                                                        farInp,
+                                                                                                                                                                                                                                                                                        farExp
+                                                                                                                                                                                                                                                                                      #)
+                                                                                                                                                                                                                                                                             in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                                                                                                                                                                                          else
+                                                                                                                                                                                                                                            let _ = "checkToken.fail"
+                                                                                                                                                                                                                                             in let failExp =
+                                                                                                                                                                                                                                                      Data.Set.Internal.Bin
+                                                                                                                                                                                                                                                        1
+                                                                                                                                                                                                                                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                                                                            ( case inputToken of
+                                                                                                                                                                                                                                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'i'
+                                                                                                                                                                                                                                                            )
+                                                                                                                                                                                                                                                        )
+                                                                                                                                                                                                                                                        Data.Set.Internal.Tip
+                                                                                                                                                                                                                                                        Data.Set.Internal.Tip
+                                                                                                                                                                                                                                                 in let (#
+                                                                                                                                                                                                                                                          farInp,
+                                                                                                                                                                                                                                                          farExp
+                                                                                                                                                                                                                                                          #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp cs of
+                                                                                                                                                                                                                                                            GHC.Types.LT ->
+                                                                                                                                                                                                                                                              (#
+                                                                                                                                                                                                                                                                cs,
+                                                                                                                                                                                                                                                                failExp
+                                                                                                                                                                                                                                                              #)
+                                                                                                                                                                                                                                                            GHC.Types.EQ ->
+                                                                                                                                                                                                                                                              (#
+                                                                                                                                                                                                                                                                farInp,
+                                                                                                                                                                                                                                                                failExp GHC.Base.<> farExp
+                                                                                                                                                                                                                                                              #)
+                                                                                                                                                                                                                                                            GHC.Types.GT ->
+                                                                                                                                                                                                                                                              (#
+                                                                                                                                                                                                                                                                farInp,
+                                                                                                                                                                                                                                                                farExp
+                                                                                                                                                                                                                                                              #)
+                                                                                                                                                                                                                                                     in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                                                                                                                                                                  else
+                                                                                                                                                                                                                    let _ = "checkToken.fail"
+                                                                                                                                                                                                                     in let failExp =
+                                                                                                                                                                                                                              Data.Set.Internal.Bin
+                                                                                                                                                                                                                                1
+                                                                                                                                                                                                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                                                    ( case inputToken of
+                                                                                                                                                                                                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 't'
+                                                                                                                                                                                                                                    )
+                                                                                                                                                                                                                                )
+                                                                                                                                                                                                                                Data.Set.Internal.Tip
+                                                                                                                                                                                                                                Data.Set.Internal.Tip
+                                                                                                                                                                                                                         in let (#
+                                                                                                                                                                                                                                  farInp,
+                                                                                                                                                                                                                                  farExp
+                                                                                                                                                                                                                                  #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp cs of
+                                                                                                                                                                                                                                    GHC.Types.LT ->
+                                                                                                                                                                                                                                      (#
+                                                                                                                                                                                                                                        cs,
+                                                                                                                                                                                                                                        failExp
+                                                                                                                                                                                                                                      #)
+                                                                                                                                                                                                                                    GHC.Types.EQ ->
+                                                                                                                                                                                                                                      (#
+                                                                                                                                                                                                                                        farInp,
+                                                                                                                                                                                                                                        failExp GHC.Base.<> farExp
+                                                                                                                                                                                                                                      #)
+                                                                                                                                                                                                                                    GHC.Types.GT ->
+                                                                                                                                                                                                                                      (#
+                                                                                                                                                                                                                                        farInp,
+                                                                                                                                                                                                                                        farExp
+                                                                                                                                                                                                                                      #)
+                                                                                                                                                                                                                             in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                                                                                                                                          else
+                                                                                                                                                                                            let _ = "checkToken.fail"
+                                                                                                                                                                                             in let failExp =
+                                                                                                                                                                                                      Data.Set.Internal.Bin
+                                                                                                                                                                                                        1
+                                                                                                                                                                                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                            ( case inputToken of
+                                                                                                                                                                                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'c'
+                                                                                                                                                                                                            )
+                                                                                                                                                                                                        )
+                                                                                                                                                                                                        Data.Set.Internal.Tip
+                                                                                                                                                                                                        Data.Set.Internal.Tip
+                                                                                                                                                                                                 in let (#
+                                                                                                                                                                                                          farInp,
+                                                                                                                                                                                                          farExp
+                                                                                                                                                                                                          #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp cs of
+                                                                                                                                                                                                            GHC.Types.LT ->
+                                                                                                                                                                                                              (#
+                                                                                                                                                                                                                cs,
+                                                                                                                                                                                                                failExp
+                                                                                                                                                                                                              #)
+                                                                                                                                                                                                            GHC.Types.EQ ->
+                                                                                                                                                                                                              (#
+                                                                                                                                                                                                                farInp,
+                                                                                                                                                                                                                failExp GHC.Base.<> farExp
+                                                                                                                                                                                                              #)
+                                                                                                                                                                                                            GHC.Types.GT ->
+                                                                                                                                                                                                              (#
+                                                                                                                                                                                                                farInp,
+                                                                                                                                                                                                                farExp
+                                                                                                                                                                                                              #)
+                                                                                                                                                                                                     in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                                                                                                                  else
+                                                                                                                                                                    let _ = "checkToken.fail"
+                                                                                                                                                                     in let failExp =
+                                                                                                                                                                              Data.Set.Internal.Bin
+                                                                                                                                                                                1
+                                                                                                                                                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                    ( case inputToken of
+                                                                                                                                                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'n'
+                                                                                                                                                                                    )
+                                                                                                                                                                                )
+                                                                                                                                                                                Data.Set.Internal.Tip
+                                                                                                                                                                                Data.Set.Internal.Tip
+                                                                                                                                                                         in let (#
+                                                                                                                                                                                  farInp,
+                                                                                                                                                                                  farExp
+                                                                                                                                                                                  #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp cs of
+                                                                                                                                                                                    GHC.Types.LT ->
+                                                                                                                                                                                      (#
+                                                                                                                                                                                        cs,
+                                                                                                                                                                                        failExp
+                                                                                                                                                                                      #)
+                                                                                                                                                                                    GHC.Types.EQ ->
+                                                                                                                                                                                      (#
+                                                                                                                                                                                        farInp,
+                                                                                                                                                                                        failExp GHC.Base.<> farExp
+                                                                                                                                                                                      #)
+                                                                                                                                                                                    GHC.Types.GT ->
+                                                                                                                                                                                      (#
+                                                                                                                                                                                        farInp,
+                                                                                                                                                                                        farExp
+                                                                                                                                                                                      #)
+                                                                                                                                                                             in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                                                                                          else
+                                                                                                                                            let _ = "checkToken.fail"
+                                                                                                                                             in let failExp =
+                                                                                                                                                      Data.Set.Internal.Bin
+                                                                                                                                                        1
+                                                                                                                                                        ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                            ( case inputToken of
+                                                                                                                                                                (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'u'
+                                                                                                                                                            )
+                                                                                                                                                        )
+                                                                                                                                                        Data.Set.Internal.Tip
+                                                                                                                                                        Data.Set.Internal.Tip
+                                                                                                                                                 in let (#
+                                                                                                                                                          farInp,
+                                                                                                                                                          farExp
+                                                                                                                                                          #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp cs of
+                                                                                                                                                            GHC.Types.LT ->
+                                                                                                                                                              (#
+                                                                                                                                                                cs,
+                                                                                                                                                                failExp
+                                                                                                                                                              #)
+                                                                                                                                                            GHC.Types.EQ ->
+                                                                                                                                                              (#
+                                                                                                                                                                farInp,
+                                                                                                                                                                failExp GHC.Base.<> farExp
+                                                                                                                                                              #)
+                                                                                                                                                            GHC.Types.GT ->
+                                                                                                                                                              (#
+                                                                                                                                                                farInp,
+                                                                                                                                                                farExp
+                                                                                                                                                              #)
+                                                                                                                                                     in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                                                                  else
+                                                                                                                    let _ = "checkToken.fail"
+                                                                                                                     in let failExp =
+                                                                                                                              Data.Set.Internal.Bin
+                                                                                                                                1
+                                                                                                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                    ( case inputToken of
+                                                                                                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'f'
+                                                                                                                                    )
+                                                                                                                                )
+                                                                                                                                Data.Set.Internal.Tip
+                                                                                                                                Data.Set.Internal.Tip
+                                                                                                                         in let (#
+                                                                                                                                  farInp,
+                                                                                                                                  farExp
+                                                                                                                                  #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                    GHC.Types.LT ->
+                                                                                                                                      (#
+                                                                                                                                        inp,
+                                                                                                                                        failExp
+                                                                                                                                      #)
+                                                                                                                                    GHC.Types.EQ ->
+                                                                                                                                      (#
+                                                                                                                                        farInp,
+                                                                                                                                        failExp GHC.Base.<> farExp
+                                                                                                                                      #)
+                                                                                                                                    GHC.Types.GT ->
+                                                                                                                                      (#
+                                                                                                                                        farInp,
+                                                                                                                                        farExp
+                                                                                                                                      #)
+                                                                                                                             in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                      else
+                                                                                                        let _ = "checkHorizon.newCheck.fail"
+                                                                                                         in let failExp =
+                                                                                                                  Data.Set.Internal.Bin
+                                                                                                                    1
+                                                                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                        ( case inputToken of
+                                                                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 18
+                                                                                                                        )
+                                                                                                                    )
+                                                                                                                    Data.Set.Internal.Tip
+                                                                                                                    Data.Set.Internal.Tip
+                                                                                                             in let (#
+                                                                                                                      farInp,
+                                                                                                                      farExp
+                                                                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                        GHC.Types.LT ->
+                                                                                                                          (#
+                                                                                                                            inp,
+                                                                                                                            failExp
+                                                                                                                          #)
+                                                                                                                        GHC.Types.EQ ->
+                                                                                                                          (#
+                                                                                                                            farInp,
+                                                                                                                            failExp GHC.Base.<> farExp
+                                                                                                                          #)
+                                                                                                                        GHC.Types.GT ->
+                                                                                                                          (#
+                                                                                                                            farInp,
+                                                                                                                            farExp
+                                                                                                                          #)
+                                                                                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                               in let _ = "jump"
+                                                                   in loop finalRet inp Data.Map.Internal.Tip
+                                        )
+                                        inp
+                                        Data.Map.Internal.Tip
+                            else
+                              let _ = "checkHorizon.newCheck.fail"
+                               in let failExp =
+                                        Data.Set.Internal.Bin
+                                          1
+                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                              ( case inputToken of
+                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
+                                              )
+                                          )
+                                          Data.Set.Internal.Tip
+                                          Data.Set.Internal.Tip
+                                   in let (#
+                                            farInp,
+                                            farExp
+                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                              GHC.Types.LT ->
+                                                (#
+                                                  inp,
+                                                  failExp
+                                                #)
+                                              GHC.Types.EQ ->
+                                                (#
+                                                  init,
+                                                  failExp GHC.Base.<> Data.Set.Internal.empty
+                                                #)
+                                              GHC.Types.GT ->
+                                                (#
+                                                  init,
+                                                  Data.Set.Internal.empty
+                                                #)
+                                       in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+        )
diff --git a/tests/Golden/Splice/G15.expected.txt b/tests/Golden/Splice/G15.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Splice/G15.expected.txt
@@ -0,0 +1,379 @@
+\(input :: inp) ->
+  let !(#
+         init,
+         readMore,
+         readNext
+         #) =
+          let _ = "cursorOf"
+           in let next
+                    ( t@( Data.Text.Internal.Text
+                            arr
+                            off
+                            unconsumed
+                          )
+                      ) =
+                      let !( Data.Text.Unsafe.Iter
+                               c
+                               d
+                             ) = Data.Text.Unsafe.iter t 0
+                       in (#
+                            c,
+                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
+                          #)
+                  more
+                    ( Data.Text.Internal.Text
+                        _
+                        _
+                        unconsumed
+                      ) = unconsumed GHC.Classes.> 0
+               in (# input, more, next #)
+      finalRet = \_farInp _farExp v _inp -> Symantic.Parser.Machine.Generate.returnST GHC.Base.$ Data.Either.Right v
+      finalRaise ::
+        forall st b.
+        Symantic.Parser.Machine.Generate.OnException
+          st
+          inp
+          b = \(!exn) _failInp (!farInp) (!farExp) ->
+          Symantic.Parser.Machine.Generate.returnST GHC.Base.$
+            Data.Either.Left
+              Symantic.Parser.Machine.Generate.ParsingError
+                { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
+                  Symantic.Parser.Machine.Generate.parsingErrorException = exn,
+                  Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
+                    if readMore farInp
+                      then
+                        GHC.Maybe.Just
+                          ( let (#
+                                  c,
+                                  _
+                                  #) = readNext farInp
+                             in c
+                          )
+                      else GHC.Maybe.Nothing,
+                  Symantic.Parser.Machine.Generate.parsingErrorExpecting =
+                    let ( minHoriz,
+                          res
+                          ) =
+                            Data.Set.Internal.foldr
+                              ( \f
+                                 ( minH,
+                                   acc
+                                   ) -> case Symantic.Parser.Grammar.Combinators.unSomeFailure f of
+                                    GHC.Maybe.Just (Symantic.Parser.Grammar.Combinators.FailureHorizon h :: Symantic.Parser.Grammar.Combinators.Failure (Symantic.Parser.Grammar.Combinators.CombSatisfiable (Symantic.Parser.Machine.Input.InputToken inp)))
+                                      | GHC.Maybe.Just old <- minH ->
+                                        ( GHC.Maybe.Just (GHC.Classes.min old h),
+                                          acc
+                                        )
+                                      | GHC.Base.otherwise ->
+                                        ( GHC.Maybe.Just h,
+                                          acc
+                                        )
+                                    _ ->
+                                      ( minH,
+                                        f GHC.Types.: acc
+                                      )
+                              )
+                              ( GHC.Maybe.Nothing,
+                                GHC.Types . []
+                              )
+                              farExp
+                     in Data.Set.Internal.fromList GHC.Base.$
+                          ( case minHoriz of
+                              GHC.Maybe.Just h -> Symantic.Parser.Grammar.Combinators.SomeFailure (Symantic.Parser.Grammar.Combinators.FailureHorizon @(Symantic.Parser.Machine.Input.InputToken inp) h) GHC.Types.: res
+                              GHC.Maybe.Nothing -> res
+                          )
+                }
+   in GHC.ST.runST
+        ( let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
+           in let inp = init
+               in let readFail = finalRaise
+                   in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=2"
+                       in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 inp)
+                            then
+                              let
+                               in let _ = "pushValue"
+                                   in let join = \farInp farExp v (!inp) ->
+                                            let _ = "lift2Value checkedHorizon=0"
+                                             in let _ = "comment: satisfy ((GHC.Classes.==) 'c')"
+                                                 in let inp = inp
+                                                     in let readFail = finalRaise
+                                                         in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=1"
+                                                             in if readMore inp
+                                                                  then
+                                                                    let _ = "checkToken"
+                                                                     in let !(#
+                                                                               c,
+                                                                               cs
+                                                                               #) = readNext inp
+                                                                         in if (GHC.Classes.==) 'c' c
+                                                                              then
+                                                                                let _ = "lift2Value checkedHorizon=1"
+                                                                                 in let _ = "resume"
+                                                                                     in finalRet
+                                                                                          farInp
+                                                                                          farExp
+                                                                                          ( let _ = "resume.genCode"
+                                                                                             in GHC.Show.show v
+                                                                                          )
+                                                                                          cs
+                                                                              else
+                                                                                let _ = "checkToken.fail"
+                                                                                 in let failExp =
+                                                                                          Data.Set.Internal.Bin
+                                                                                            1
+                                                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                ( case inputToken of
+                                                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'c'
+                                                                                                )
+                                                                                            )
+                                                                                            Data.Set.Internal.Tip
+                                                                                            Data.Set.Internal.Tip
+                                                                                     in let (#
+                                                                                              farInp,
+                                                                                              farExp
+                                                                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                GHC.Types.LT ->
+                                                                                                  (#
+                                                                                                    inp,
+                                                                                                    failExp
+                                                                                                  #)
+                                                                                                GHC.Types.EQ ->
+                                                                                                  (#
+                                                                                                    farInp,
+                                                                                                    failExp GHC.Base.<> farExp
+                                                                                                  #)
+                                                                                                GHC.Types.GT ->
+                                                                                                  (#
+                                                                                                    farInp,
+                                                                                                    farExp
+                                                                                                  #)
+                                                                                         in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                  else
+                                                                    let _ = "checkHorizon.newCheck.fail"
+                                                                     in let failExp =
+                                                                              Data.Set.Internal.Bin
+                                                                                1
+                                                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                    ( case inputToken of
+                                                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
+                                                                                    )
+                                                                                )
+                                                                                Data.Set.Internal.Tip
+                                                                                Data.Set.Internal.Tip
+                                                                         in let (#
+                                                                                  farInp,
+                                                                                  farExp
+                                                                                  #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                    GHC.Types.LT ->
+                                                                                      (#
+                                                                                        inp,
+                                                                                        failExp
+                                                                                      #)
+                                                                                    GHC.Types.EQ ->
+                                                                                      (#
+                                                                                        farInp,
+                                                                                        failExp GHC.Base.<> farExp
+                                                                                      #)
+                                                                                    GHC.Types.GT ->
+                                                                                      (#
+                                                                                        farInp,
+                                                                                        farExp
+                                                                                      #)
+                                                                             in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                       in let _ = "catch ExceptionFailure checkedHorizon=2"
+                                           in let onException =
+                                                    let _ = "onException"
+                                                     in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                          let _ = "comment: raiseAgainIfConsumed"
+                                                           in let _ = "saveInput checkedHorizon=0"
+                                                               in let _ = "lift2Value checkedHorizon=0"
+                                                                   in if ( \( Data.Text.Internal.Text
+                                                                                _
+                                                                                i
+                                                                                _
+                                                                              )
+                                                                            ( Data.Text.Internal.Text
+                                                                                _
+                                                                                j
+                                                                                _
+                                                                              ) -> i GHC.Classes.== j
+                                                                         )
+                                                                        inp
+                                                                        failInp
+                                                                        then
+                                                                          let _ = "choicesBranch checkedHorizon=0"
+                                                                           in let _ = "pushValue"
+                                                                               in let _ = "comment: satisfy ((GHC.Classes.==) 'b')"
+                                                                                   in let inp = failInp
+                                                                                       in let readFail = finalRaise
+                                                                                           in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=2"
+                                                                                               in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 inp)
+                                                                                                    then
+                                                                                                      let _ = "checkToken"
+                                                                                                       in let !(#
+                                                                                                                 c,
+                                                                                                                 cs
+                                                                                                                 #) = readNext inp
+                                                                                                           in if (GHC.Classes.==) 'b' c
+                                                                                                                then
+                                                                                                                  let _ = "lift2Value checkedHorizon=2"
+                                                                                                                   in let _ = "resume"
+                                                                                                                       in join
+                                                                                                                            farInp
+                                                                                                                            farExp
+                                                                                                                            ( let _ = "resume.genCode"
+                                                                                                                               in 'b'
+                                                                                                                            )
+                                                                                                                            cs
+                                                                                                                else
+                                                                                                                  let _ = "checkToken.fail"
+                                                                                                                   in let failExp =
+                                                                                                                            Data.Set.Internal.Bin
+                                                                                                                              1
+                                                                                                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                  ( case inputToken of
+                                                                                                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'b'
+                                                                                                                                  )
+                                                                                                                              )
+                                                                                                                              Data.Set.Internal.Tip
+                                                                                                                              Data.Set.Internal.Tip
+                                                                                                                       in let (#
+                                                                                                                                farInp,
+                                                                                                                                farExp
+                                                                                                                                #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                  GHC.Types.LT ->
+                                                                                                                                    (#
+                                                                                                                                      inp,
+                                                                                                                                      failExp
+                                                                                                                                    #)
+                                                                                                                                  GHC.Types.EQ ->
+                                                                                                                                    (#
+                                                                                                                                      farInp,
+                                                                                                                                      failExp GHC.Base.<> farExp
+                                                                                                                                    #)
+                                                                                                                                  GHC.Types.GT ->
+                                                                                                                                    (#
+                                                                                                                                      farInp,
+                                                                                                                                      farExp
+                                                                                                                                    #)
+                                                                                                                           in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                    else
+                                                                                                      let _ = "checkHorizon.newCheck.fail"
+                                                                                                       in let failExp =
+                                                                                                                Data.Set.Internal.Bin
+                                                                                                                  1
+                                                                                                                  ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                      ( case inputToken of
+                                                                                                                          (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
+                                                                                                                      )
+                                                                                                                  )
+                                                                                                                  Data.Set.Internal.Tip
+                                                                                                                  Data.Set.Internal.Tip
+                                                                                                           in let (#
+                                                                                                                    farInp,
+                                                                                                                    farExp
+                                                                                                                    #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                      GHC.Types.LT ->
+                                                                                                                        (#
+                                                                                                                          inp,
+                                                                                                                          failExp
+                                                                                                                        #)
+                                                                                                                      GHC.Types.EQ ->
+                                                                                                                        (#
+                                                                                                                          farInp,
+                                                                                                                          failExp GHC.Base.<> farExp
+                                                                                                                        #)
+                                                                                                                      GHC.Types.GT ->
+                                                                                                                        (#
+                                                                                                                          farInp,
+                                                                                                                          farExp
+                                                                                                                        #)
+                                                                                                               in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                        else
+                                                                          let _ = "choicesBranch.else"
+                                                                           in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                               in let _ = "pushValue"
+                                                   in let _ = "comment: satisfy ((GHC.Classes.==) 'a')"
+                                                       in let _ = "checkHorizon.oldCheck: checkedHorizon=2"
+                                                           in let _ = "checkToken"
+                                                               in let !(#
+                                                                         c,
+                                                                         cs
+                                                                         #) = readNext inp
+                                                                   in if (GHC.Classes.==) 'a' c
+                                                                        then
+                                                                          let _ = "lift2Value checkedHorizon=1"
+                                                                           in let _ = "commit"
+                                                                               in let _ = "resume"
+                                                                                   in join
+                                                                                        init
+                                                                                        Data.Set.Internal.empty
+                                                                                        ( let _ = "resume.genCode"
+                                                                                           in 'a'
+                                                                                        )
+                                                                                        cs
+                                                                        else
+                                                                          let _ = "checkToken.fail"
+                                                                           in let failExp =
+                                                                                    Data.Set.Internal.Bin
+                                                                                      1
+                                                                                      ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                          ( case inputToken of
+                                                                                              (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
+                                                                                          )
+                                                                                      )
+                                                                                      Data.Set.Internal.Tip
+                                                                                      Data.Set.Internal.Tip
+                                                                               in let (#
+                                                                                        farInp,
+                                                                                        farExp
+                                                                                        #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                          GHC.Types.LT ->
+                                                                                            (#
+                                                                                              inp,
+                                                                                              failExp
+                                                                                            #)
+                                                                                          GHC.Types.EQ ->
+                                                                                            (#
+                                                                                              init,
+                                                                                              failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                            #)
+                                                                                          GHC.Types.GT ->
+                                                                                            (#
+                                                                                              init,
+                                                                                              Data.Set.Internal.empty
+                                                                                            #)
+                                                                                   in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                            else
+                              let _ = "checkHorizon.newCheck.fail"
+                               in let failExp =
+                                        Data.Set.Internal.Bin
+                                          1
+                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                              ( case inputToken of
+                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
+                                              )
+                                          )
+                                          Data.Set.Internal.Tip
+                                          Data.Set.Internal.Tip
+                                   in let (#
+                                            farInp,
+                                            farExp
+                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                              GHC.Types.LT ->
+                                                (#
+                                                  inp,
+                                                  failExp
+                                                #)
+                                              GHC.Types.EQ ->
+                                                (#
+                                                  init,
+                                                  failExp GHC.Base.<> Data.Set.Internal.empty
+                                                #)
+                                              GHC.Types.GT ->
+                                                (#
+                                                  init,
+                                                  Data.Set.Internal.empty
+                                                #)
+                                       in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+        )
diff --git a/tests/Golden/Splice/G16.expected.txt b/tests/Golden/Splice/G16.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Splice/G16.expected.txt
@@ -0,0 +1,492 @@
+\(input :: inp) ->
+  let !(#
+         init,
+         readMore,
+         readNext
+         #) =
+          let _ = "cursorOf"
+           in let next
+                    ( t@( Data.Text.Internal.Text
+                            arr
+                            off
+                            unconsumed
+                          )
+                      ) =
+                      let !( Data.Text.Unsafe.Iter
+                               c
+                               d
+                             ) = Data.Text.Unsafe.iter t 0
+                       in (#
+                            c,
+                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
+                          #)
+                  more
+                    ( Data.Text.Internal.Text
+                        _
+                        _
+                        unconsumed
+                      ) = unconsumed GHC.Classes.> 0
+               in (# input, more, next #)
+      finalRet = \_farInp _farExp v _inp -> Symantic.Parser.Machine.Generate.returnST GHC.Base.$ Data.Either.Right v
+      finalRaise ::
+        forall st b.
+        Symantic.Parser.Machine.Generate.OnException
+          st
+          inp
+          b = \(!exn) _failInp (!farInp) (!farExp) ->
+          Symantic.Parser.Machine.Generate.returnST GHC.Base.$
+            Data.Either.Left
+              Symantic.Parser.Machine.Generate.ParsingError
+                { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
+                  Symantic.Parser.Machine.Generate.parsingErrorException = exn,
+                  Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
+                    if readMore farInp
+                      then
+                        GHC.Maybe.Just
+                          ( let (#
+                                  c,
+                                  _
+                                  #) = readNext farInp
+                             in c
+                          )
+                      else GHC.Maybe.Nothing,
+                  Symantic.Parser.Machine.Generate.parsingErrorExpecting =
+                    let ( minHoriz,
+                          res
+                          ) =
+                            Data.Set.Internal.foldr
+                              ( \f
+                                 ( minH,
+                                   acc
+                                   ) -> case Symantic.Parser.Grammar.Combinators.unSomeFailure f of
+                                    GHC.Maybe.Just (Symantic.Parser.Grammar.Combinators.FailureHorizon h :: Symantic.Parser.Grammar.Combinators.Failure (Symantic.Parser.Grammar.Combinators.CombSatisfiable (Symantic.Parser.Machine.Input.InputToken inp)))
+                                      | GHC.Maybe.Just old <- minH ->
+                                        ( GHC.Maybe.Just (GHC.Classes.min old h),
+                                          acc
+                                        )
+                                      | GHC.Base.otherwise ->
+                                        ( GHC.Maybe.Just h,
+                                          acc
+                                        )
+                                    _ ->
+                                      ( minH,
+                                        f GHC.Types.: acc
+                                      )
+                              )
+                              ( GHC.Maybe.Nothing,
+                                GHC.Types . []
+                              )
+                              farExp
+                     in Data.Set.Internal.fromList GHC.Base.$
+                          ( case minHoriz of
+                              GHC.Maybe.Just h -> Symantic.Parser.Grammar.Combinators.SomeFailure (Symantic.Parser.Grammar.Combinators.FailureHorizon @(Symantic.Parser.Machine.Input.InputToken inp) h) GHC.Types.: res
+                              GHC.Maybe.Nothing -> res
+                          )
+                }
+   in GHC.ST.runST
+        ( let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
+           in let inp = init
+               in let readFail = finalRaise
+                   in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=2"
+                       in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 inp)
+                            then
+                              let
+                               in let _ = "pushValue"
+                                   in let join = \farInp farExp v (!inp) ->
+                                            let _ = "lift2Value checkedHorizon=0"
+                                             in let _ = "comment: satisfy ((GHC.Classes.==) 'd')"
+                                                 in let inp = inp
+                                                     in let readFail = finalRaise
+                                                         in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=1"
+                                                             in if readMore inp
+                                                                  then
+                                                                    let _ = "checkToken"
+                                                                     in let !(#
+                                                                               c,
+                                                                               cs
+                                                                               #) = readNext inp
+                                                                         in if (GHC.Classes.==) 'd' c
+                                                                              then
+                                                                                let _ = "lift2Value checkedHorizon=1"
+                                                                                 in let _ = "resume"
+                                                                                     in finalRet
+                                                                                          farInp
+                                                                                          farExp
+                                                                                          ( let _ = "resume.genCode"
+                                                                                             in GHC.Show.show v
+                                                                                          )
+                                                                                          cs
+                                                                              else
+                                                                                let _ = "checkToken.fail"
+                                                                                 in let failExp =
+                                                                                          Data.Set.Internal.Bin
+                                                                                            1
+                                                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                ( case inputToken of
+                                                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'd'
+                                                                                                )
+                                                                                            )
+                                                                                            Data.Set.Internal.Tip
+                                                                                            Data.Set.Internal.Tip
+                                                                                     in let (#
+                                                                                              farInp,
+                                                                                              farExp
+                                                                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                GHC.Types.LT ->
+                                                                                                  (#
+                                                                                                    inp,
+                                                                                                    failExp
+                                                                                                  #)
+                                                                                                GHC.Types.EQ ->
+                                                                                                  (#
+                                                                                                    farInp,
+                                                                                                    failExp GHC.Base.<> farExp
+                                                                                                  #)
+                                                                                                GHC.Types.GT ->
+                                                                                                  (#
+                                                                                                    farInp,
+                                                                                                    farExp
+                                                                                                  #)
+                                                                                         in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                  else
+                                                                    let _ = "checkHorizon.newCheck.fail"
+                                                                     in let failExp =
+                                                                              Data.Set.Internal.Bin
+                                                                                1
+                                                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                    ( case inputToken of
+                                                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
+                                                                                    )
+                                                                                )
+                                                                                Data.Set.Internal.Tip
+                                                                                Data.Set.Internal.Tip
+                                                                         in let (#
+                                                                                  farInp,
+                                                                                  farExp
+                                                                                  #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                    GHC.Types.LT ->
+                                                                                      (#
+                                                                                        inp,
+                                                                                        failExp
+                                                                                      #)
+                                                                                    GHC.Types.EQ ->
+                                                                                      (#
+                                                                                        farInp,
+                                                                                        failExp GHC.Base.<> farExp
+                                                                                      #)
+                                                                                    GHC.Types.GT ->
+                                                                                      (#
+                                                                                        farInp,
+                                                                                        farExp
+                                                                                      #)
+                                                                             in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                       in let _ = "catch ExceptionFailure checkedHorizon=2"
+                                           in let onException =
+                                                    let _ = "onException"
+                                                     in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                          let _ = "comment: raiseAgainIfConsumed"
+                                                           in let _ = "saveInput checkedHorizon=0"
+                                                               in let _ = "lift2Value checkedHorizon=0"
+                                                                   in if ( \( Data.Text.Internal.Text
+                                                                                _
+                                                                                i
+                                                                                _
+                                                                              )
+                                                                            ( Data.Text.Internal.Text
+                                                                                _
+                                                                                j
+                                                                                _
+                                                                              ) -> i GHC.Classes.== j
+                                                                         )
+                                                                        inp
+                                                                        failInp
+                                                                        then
+                                                                          let _ = "choicesBranch checkedHorizon=0"
+                                                                           in let _ = "catch ExceptionFailure checkedHorizon=0"
+                                                                               in let onException =
+                                                                                        let _ = "onException"
+                                                                                         in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                              let _ = "comment: raiseAgainIfConsumed"
+                                                                                               in let _ = "saveInput checkedHorizon=0"
+                                                                                                   in let _ = "lift2Value checkedHorizon=0"
+                                                                                                       in if ( \( Data.Text.Internal.Text
+                                                                                                                    _
+                                                                                                                    i
+                                                                                                                    _
+                                                                                                                  )
+                                                                                                                ( Data.Text.Internal.Text
+                                                                                                                    _
+                                                                                                                    j
+                                                                                                                    _
+                                                                                                                  ) -> i GHC.Classes.== j
+                                                                                                             )
+                                                                                                            failInp
+                                                                                                            failInp
+                                                                                                            then
+                                                                                                              let _ = "choicesBranch checkedHorizon=0"
+                                                                                                               in let _ = "pushValue"
+                                                                                                                   in let _ = "comment: satisfy ((GHC.Classes.==) 'c')"
+                                                                                                                       in let inp = failInp
+                                                                                                                           in let readFail = finalRaise
+                                                                                                                               in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=2"
+                                                                                                                                   in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 inp)
+                                                                                                                                        then
+                                                                                                                                          let _ = "checkToken"
+                                                                                                                                           in let !(#
+                                                                                                                                                     c,
+                                                                                                                                                     cs
+                                                                                                                                                     #) = readNext inp
+                                                                                                                                               in if (GHC.Classes.==) 'c' c
+                                                                                                                                                    then
+                                                                                                                                                      let _ = "lift2Value checkedHorizon=2"
+                                                                                                                                                       in let _ = "resume"
+                                                                                                                                                           in join
+                                                                                                                                                                farInp
+                                                                                                                                                                farExp
+                                                                                                                                                                ( let _ = "resume.genCode"
+                                                                                                                                                                   in 'c'
+                                                                                                                                                                )
+                                                                                                                                                                cs
+                                                                                                                                                    else
+                                                                                                                                                      let _ = "checkToken.fail"
+                                                                                                                                                       in let failExp =
+                                                                                                                                                                Data.Set.Internal.Bin
+                                                                                                                                                                  1
+                                                                                                                                                                  ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                      ( case inputToken of
+                                                                                                                                                                          (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'c'
+                                                                                                                                                                      )
+                                                                                                                                                                  )
+                                                                                                                                                                  Data.Set.Internal.Tip
+                                                                                                                                                                  Data.Set.Internal.Tip
+                                                                                                                                                           in let (#
+                                                                                                                                                                    farInp,
+                                                                                                                                                                    farExp
+                                                                                                                                                                    #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                                                      GHC.Types.LT ->
+                                                                                                                                                                        (#
+                                                                                                                                                                          inp,
+                                                                                                                                                                          failExp
+                                                                                                                                                                        #)
+                                                                                                                                                                      GHC.Types.EQ ->
+                                                                                                                                                                        (#
+                                                                                                                                                                          farInp,
+                                                                                                                                                                          failExp GHC.Base.<> farExp
+                                                                                                                                                                        #)
+                                                                                                                                                                      GHC.Types.GT ->
+                                                                                                                                                                        (#
+                                                                                                                                                                          farInp,
+                                                                                                                                                                          farExp
+                                                                                                                                                                        #)
+                                                                                                                                                               in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                                                        else
+                                                                                                                                          let _ = "checkHorizon.newCheck.fail"
+                                                                                                                                           in let failExp =
+                                                                                                                                                    Data.Set.Internal.Bin
+                                                                                                                                                      1
+                                                                                                                                                      ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                          ( case inputToken of
+                                                                                                                                                              (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
+                                                                                                                                                          )
+                                                                                                                                                      )
+                                                                                                                                                      Data.Set.Internal.Tip
+                                                                                                                                                      Data.Set.Internal.Tip
+                                                                                                                                               in let (#
+                                                                                                                                                        farInp,
+                                                                                                                                                        farExp
+                                                                                                                                                        #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                                          GHC.Types.LT ->
+                                                                                                                                                            (#
+                                                                                                                                                              inp,
+                                                                                                                                                              failExp
+                                                                                                                                                            #)
+                                                                                                                                                          GHC.Types.EQ ->
+                                                                                                                                                            (#
+                                                                                                                                                              farInp,
+                                                                                                                                                              failExp GHC.Base.<> farExp
+                                                                                                                                                            #)
+                                                                                                                                                          GHC.Types.GT ->
+                                                                                                                                                            (#
+                                                                                                                                                              farInp,
+                                                                                                                                                              farExp
+                                                                                                                                                            #)
+                                                                                                                                                   in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                            else
+                                                                                                              let _ = "choicesBranch.else"
+                                                                                                               in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                   in let _ = "pushValue"
+                                                                                       in let _ = "comment: satisfy ((GHC.Classes.==) 'b')"
+                                                                                           in let inp = failInp
+                                                                                               in let readFail = onException
+                                                                                                   in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=2"
+                                                                                                       in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 inp)
+                                                                                                            then
+                                                                                                              let _ = "checkToken"
+                                                                                                               in let !(#
+                                                                                                                         c,
+                                                                                                                         cs
+                                                                                                                         #) = readNext inp
+                                                                                                                   in if (GHC.Classes.==) 'b' c
+                                                                                                                        then
+                                                                                                                          let _ = "lift2Value checkedHorizon=2"
+                                                                                                                           in let _ = "commit"
+                                                                                                                               in let _ = "resume"
+                                                                                                                                   in join
+                                                                                                                                        farInp
+                                                                                                                                        farExp
+                                                                                                                                        ( let _ = "resume.genCode"
+                                                                                                                                           in 'b'
+                                                                                                                                        )
+                                                                                                                                        cs
+                                                                                                                        else
+                                                                                                                          let _ = "checkToken.fail"
+                                                                                                                           in let failExp =
+                                                                                                                                    Data.Set.Internal.Bin
+                                                                                                                                      1
+                                                                                                                                      ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                          ( case inputToken of
+                                                                                                                                              (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'b'
+                                                                                                                                          )
+                                                                                                                                      )
+                                                                                                                                      Data.Set.Internal.Tip
+                                                                                                                                      Data.Set.Internal.Tip
+                                                                                                                               in let (#
+                                                                                                                                        farInp,
+                                                                                                                                        farExp
+                                                                                                                                        #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                          GHC.Types.LT ->
+                                                                                                                                            (#
+                                                                                                                                              inp,
+                                                                                                                                              failExp
+                                                                                                                                            #)
+                                                                                                                                          GHC.Types.EQ ->
+                                                                                                                                            (#
+                                                                                                                                              farInp,
+                                                                                                                                              failExp GHC.Base.<> farExp
+                                                                                                                                            #)
+                                                                                                                                          GHC.Types.GT ->
+                                                                                                                                            (#
+                                                                                                                                              farInp,
+                                                                                                                                              farExp
+                                                                                                                                            #)
+                                                                                                                                   in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                            else
+                                                                                                              let _ = "checkHorizon.newCheck.fail"
+                                                                                                               in let failExp =
+                                                                                                                        Data.Set.Internal.Bin
+                                                                                                                          1
+                                                                                                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                              ( case inputToken of
+                                                                                                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
+                                                                                                                              )
+                                                                                                                          )
+                                                                                                                          Data.Set.Internal.Tip
+                                                                                                                          Data.Set.Internal.Tip
+                                                                                                                   in let (#
+                                                                                                                            farInp,
+                                                                                                                            farExp
+                                                                                                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                              GHC.Types.LT ->
+                                                                                                                                (#
+                                                                                                                                  inp,
+                                                                                                                                  failExp
+                                                                                                                                #)
+                                                                                                                              GHC.Types.EQ ->
+                                                                                                                                (#
+                                                                                                                                  farInp,
+                                                                                                                                  failExp GHC.Base.<> farExp
+                                                                                                                                #)
+                                                                                                                              GHC.Types.GT ->
+                                                                                                                                (#
+                                                                                                                                  farInp,
+                                                                                                                                  farExp
+                                                                                                                                #)
+                                                                                                                       in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                        else
+                                                                          let _ = "choicesBranch.else"
+                                                                           in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                               in let _ = "pushValue"
+                                                   in let _ = "comment: satisfy ((GHC.Classes.==) 'a')"
+                                                       in let _ = "checkHorizon.oldCheck: checkedHorizon=2"
+                                                           in let _ = "checkToken"
+                                                               in let !(#
+                                                                         c,
+                                                                         cs
+                                                                         #) = readNext inp
+                                                                   in if (GHC.Classes.==) 'a' c
+                                                                        then
+                                                                          let _ = "lift2Value checkedHorizon=1"
+                                                                           in let _ = "commit"
+                                                                               in let _ = "resume"
+                                                                                   in join
+                                                                                        init
+                                                                                        Data.Set.Internal.empty
+                                                                                        ( let _ = "resume.genCode"
+                                                                                           in 'a'
+                                                                                        )
+                                                                                        cs
+                                                                        else
+                                                                          let _ = "checkToken.fail"
+                                                                           in let failExp =
+                                                                                    Data.Set.Internal.Bin
+                                                                                      1
+                                                                                      ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                          ( case inputToken of
+                                                                                              (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
+                                                                                          )
+                                                                                      )
+                                                                                      Data.Set.Internal.Tip
+                                                                                      Data.Set.Internal.Tip
+                                                                               in let (#
+                                                                                        farInp,
+                                                                                        farExp
+                                                                                        #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                          GHC.Types.LT ->
+                                                                                            (#
+                                                                                              inp,
+                                                                                              failExp
+                                                                                            #)
+                                                                                          GHC.Types.EQ ->
+                                                                                            (#
+                                                                                              init,
+                                                                                              failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                            #)
+                                                                                          GHC.Types.GT ->
+                                                                                            (#
+                                                                                              init,
+                                                                                              Data.Set.Internal.empty
+                                                                                            #)
+                                                                                   in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                            else
+                              let _ = "checkHorizon.newCheck.fail"
+                               in let failExp =
+                                        Data.Set.Internal.Bin
+                                          1
+                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                              ( case inputToken of
+                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
+                                              )
+                                          )
+                                          Data.Set.Internal.Tip
+                                          Data.Set.Internal.Tip
+                                   in let (#
+                                            farInp,
+                                            farExp
+                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                              GHC.Types.LT ->
+                                                (#
+                                                  inp,
+                                                  failExp
+                                                #)
+                                              GHC.Types.EQ ->
+                                                (#
+                                                  init,
+                                                  failExp GHC.Base.<> Data.Set.Internal.empty
+                                                #)
+                                              GHC.Types.GT ->
+                                                (#
+                                                  init,
+                                                  Data.Set.Internal.empty
+                                                #)
+                                       in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+        )
diff --git a/tests/Golden/Splice/G17.expected.txt b/tests/Golden/Splice/G17.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Splice/G17.expected.txt
@@ -0,0 +1,153 @@
+\(input :: inp) ->
+  let !(#
+         init,
+         readMore,
+         readNext
+         #) =
+          let _ = "cursorOf"
+           in let next
+                    ( t@( Data.Text.Internal.Text
+                            arr
+                            off
+                            unconsumed
+                          )
+                      ) =
+                      let !( Data.Text.Unsafe.Iter
+                               c
+                               d
+                             ) = Data.Text.Unsafe.iter t 0
+                       in (#
+                            c,
+                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
+                          #)
+                  more
+                    ( Data.Text.Internal.Text
+                        _
+                        _
+                        unconsumed
+                      ) = unconsumed GHC.Classes.> 0
+               in (# input, more, next #)
+      finalRet = \_farInp _farExp v _inp -> Symantic.Parser.Machine.Generate.returnST GHC.Base.$ Data.Either.Right v
+      finalRaise ::
+        forall st b.
+        Symantic.Parser.Machine.Generate.OnException
+          st
+          inp
+          b = \(!exn) _failInp (!farInp) (!farExp) ->
+          Symantic.Parser.Machine.Generate.returnST GHC.Base.$
+            Data.Either.Left
+              Symantic.Parser.Machine.Generate.ParsingError
+                { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
+                  Symantic.Parser.Machine.Generate.parsingErrorException = exn,
+                  Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
+                    if readMore farInp
+                      then
+                        GHC.Maybe.Just
+                          ( let (#
+                                  c,
+                                  _
+                                  #) = readNext farInp
+                             in c
+                          )
+                      else GHC.Maybe.Nothing,
+                  Symantic.Parser.Machine.Generate.parsingErrorExpecting =
+                    let ( minHoriz,
+                          res
+                          ) =
+                            Data.Set.Internal.foldr
+                              ( \f
+                                 ( minH,
+                                   acc
+                                   ) -> case Symantic.Parser.Grammar.Combinators.unSomeFailure f of
+                                    GHC.Maybe.Just (Symantic.Parser.Grammar.Combinators.FailureHorizon h :: Symantic.Parser.Grammar.Combinators.Failure (Symantic.Parser.Grammar.Combinators.CombSatisfiable (Symantic.Parser.Machine.Input.InputToken inp)))
+                                      | GHC.Maybe.Just old <- minH ->
+                                        ( GHC.Maybe.Just (GHC.Classes.min old h),
+                                          acc
+                                        )
+                                      | GHC.Base.otherwise ->
+                                        ( GHC.Maybe.Just h,
+                                          acc
+                                        )
+                                    _ ->
+                                      ( minH,
+                                        f GHC.Types.: acc
+                                      )
+                              )
+                              ( GHC.Maybe.Nothing,
+                                GHC.Types . []
+                              )
+                              farExp
+                     in Data.Set.Internal.fromList GHC.Base.$
+                          ( case minHoriz of
+                              GHC.Maybe.Just h -> Symantic.Parser.Grammar.Combinators.SomeFailure (Symantic.Parser.Grammar.Combinators.FailureHorizon @(Symantic.Parser.Machine.Input.InputToken inp) h) GHC.Types.: res
+                              GHC.Maybe.Nothing -> res
+                          )
+                }
+   in GHC.ST.runST
+        ( let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
+           in let inp = init
+               in let readFail = finalRaise
+                   in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=1"
+                       in if readMore inp
+                            then
+                              let
+                               in let _ = "pushValue"
+                                   in let _ = "comment: satisfy ((\\x_0 -> \\x_1 -> x_0) GHC.Types.True)"
+                                       in let _ = "checkHorizon.oldCheck: checkedHorizon=1"
+                                           in let _ = "checkToken"
+                                               in let !(#
+                                                         c,
+                                                         cs
+                                                         #) = readNext inp
+                                                   in do
+                                                        let dupv = c
+                                                        reg <- GHC.STRef.newSTRef dupv
+                                                        let _ = "pushValue"
+                                                         in do
+                                                              sr <- GHC.STRef.readSTRef reg
+                                                              let _ = "lift2Value checkedHorizon=0"
+                                                               in do
+                                                                    sr <- GHC.STRef.readSTRef reg
+                                                                    let _ = "lift2Value checkedHorizon=0"
+                                                                     in let _ = "lift2Value checkedHorizon=0"
+                                                                         in let _ = "resume"
+                                                                             in finalRet
+                                                                                  init
+                                                                                  Data.Set.Internal.empty
+                                                                                  ( let _ = "resume.genCode"
+                                                                                     in GHC.Show.show (GHC.Tuple . (,) sr sr)
+                                                                                  )
+                                                                                  cs
+                            else
+                              let _ = "checkHorizon.newCheck.fail"
+                               in let failExp =
+                                        Data.Set.Internal.Bin
+                                          1
+                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                              ( case inputToken of
+                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
+                                              )
+                                          )
+                                          Data.Set.Internal.Tip
+                                          Data.Set.Internal.Tip
+                                   in let (#
+                                            farInp,
+                                            farExp
+                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                              GHC.Types.LT ->
+                                                (#
+                                                  inp,
+                                                  failExp
+                                                #)
+                                              GHC.Types.EQ ->
+                                                (#
+                                                  init,
+                                                  failExp GHC.Base.<> Data.Set.Internal.empty
+                                                #)
+                                              GHC.Types.GT ->
+                                                (#
+                                                  init,
+                                                  Data.Set.Internal.empty
+                                                #)
+                                       in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+        )
diff --git a/tests/Golden/Splice/G18.expected.txt b/tests/Golden/Splice/G18.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Splice/G18.expected.txt
@@ -0,0 +1,479 @@
+\(input :: inp) ->
+  let !(#
+         init,
+         readMore,
+         readNext
+         #) =
+          let _ = "cursorOf"
+           in let next
+                    ( t@( Data.Text.Internal.Text
+                            arr
+                            off
+                            unconsumed
+                          )
+                      ) =
+                      let !( Data.Text.Unsafe.Iter
+                               c
+                               d
+                             ) = Data.Text.Unsafe.iter t 0
+                       in (#
+                            c,
+                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
+                          #)
+                  more
+                    ( Data.Text.Internal.Text
+                        _
+                        _
+                        unconsumed
+                      ) = unconsumed GHC.Classes.> 0
+               in (# input, more, next #)
+      finalRet = \_farInp _farExp v _inp -> Symantic.Parser.Machine.Generate.returnST GHC.Base.$ Data.Either.Right v
+      finalRaise ::
+        forall st b.
+        Symantic.Parser.Machine.Generate.OnException
+          st
+          inp
+          b = \(!exn) _failInp (!farInp) (!farExp) ->
+          Symantic.Parser.Machine.Generate.returnST GHC.Base.$
+            Data.Either.Left
+              Symantic.Parser.Machine.Generate.ParsingError
+                { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
+                  Symantic.Parser.Machine.Generate.parsingErrorException = exn,
+                  Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
+                    if readMore farInp
+                      then
+                        GHC.Maybe.Just
+                          ( let (#
+                                  c,
+                                  _
+                                  #) = readNext farInp
+                             in c
+                          )
+                      else GHC.Maybe.Nothing,
+                  Symantic.Parser.Machine.Generate.parsingErrorExpecting =
+                    let ( minHoriz,
+                          res
+                          ) =
+                            Data.Set.Internal.foldr
+                              ( \f
+                                 ( minH,
+                                   acc
+                                   ) -> case Symantic.Parser.Grammar.Combinators.unSomeFailure f of
+                                    GHC.Maybe.Just (Symantic.Parser.Grammar.Combinators.FailureHorizon h :: Symantic.Parser.Grammar.Combinators.Failure (Symantic.Parser.Grammar.Combinators.CombSatisfiable (Symantic.Parser.Machine.Input.InputToken inp)))
+                                      | GHC.Maybe.Just old <- minH ->
+                                        ( GHC.Maybe.Just (GHC.Classes.min old h),
+                                          acc
+                                        )
+                                      | GHC.Base.otherwise ->
+                                        ( GHC.Maybe.Just h,
+                                          acc
+                                        )
+                                    _ ->
+                                      ( minH,
+                                        f GHC.Types.: acc
+                                      )
+                              )
+                              ( GHC.Maybe.Nothing,
+                                GHC.Types . []
+                              )
+                              farExp
+                     in Data.Set.Internal.fromList GHC.Base.$
+                          ( case minHoriz of
+                              GHC.Maybe.Just h -> Symantic.Parser.Grammar.Combinators.SomeFailure (Symantic.Parser.Grammar.Combinators.FailureHorizon @(Symantic.Parser.Machine.Input.InputToken inp) h) GHC.Types.: res
+                              GHC.Maybe.Nothing -> res
+                          )
+                }
+   in GHC.ST.runST
+        ( let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
+           in let inp = init
+               in let readFail = finalRaise
+                   in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=2"
+                       in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 inp)
+                            then
+                              let
+                               in let _ = "pushValue"
+                                   in let join = \farInp farExp v (!inp) ->
+                                            let _ = "lift2Value checkedHorizon=0"
+                                             in let _ = "resume"
+                                                 in finalRet
+                                                      farInp
+                                                      farExp
+                                                      ( let _ = "resume.genCode"
+                                                         in GHC.Show.show v
+                                                      )
+                                                      inp
+                                       in let _ = "catch ExceptionFailure checkedHorizon=2"
+                                           in let onException =
+                                                    let _ = "onException"
+                                                     in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                          let _ = "comment: raiseAgainIfConsumed"
+                                                           in let _ = "saveInput checkedHorizon=0"
+                                                               in let _ = "lift2Value checkedHorizon=0"
+                                                                   in if ( \( Data.Text.Internal.Text
+                                                                                _
+                                                                                i
+                                                                                _
+                                                                              )
+                                                                            ( Data.Text.Internal.Text
+                                                                                _
+                                                                                j
+                                                                                _
+                                                                              ) -> i GHC.Classes.== j
+                                                                         )
+                                                                        inp
+                                                                        failInp
+                                                                        then
+                                                                          let _ = "choicesBranch checkedHorizon=0"
+                                                                           in let _ = "catch ExceptionFailure checkedHorizon=0"
+                                                                               in let onException =
+                                                                                        let _ = "onException"
+                                                                                         in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                              let _ = "loadInput checkedHorizon=0"
+                                                                                               in let _ = "checkHorizon.noCheck"
+                                                                                                   in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                   in let _ = "pushValue"
+                                                                                       in let _ = "comment: satisfy ((GHC.Classes.==) 'd')"
+                                                                                           in let inp = failInp
+                                                                                               in let readFail = onException
+                                                                                                   in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=2"
+                                                                                                       in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 inp)
+                                                                                                            then
+                                                                                                              let _ = "checkToken"
+                                                                                                               in let !(#
+                                                                                                                         c,
+                                                                                                                         cs
+                                                                                                                         #) = readNext inp
+                                                                                                                   in if (GHC.Classes.==) 'd' c
+                                                                                                                        then
+                                                                                                                          let _ = "lift2Value checkedHorizon=2"
+                                                                                                                           in let _ = "comment: satisfy ((GHC.Classes.==) 'e')"
+                                                                                                                               in let _ = "checkHorizon.oldCheck: checkedHorizon=2"
+                                                                                                                                   in let _ = "checkToken"
+                                                                                                                                       in let !(#
+                                                                                                                                                 c,
+                                                                                                                                                 cs
+                                                                                                                                                 #) = readNext cs
+                                                                                                                                           in if (GHC.Classes.==) 'e' c
+                                                                                                                                                then
+                                                                                                                                                  let _ = "lift2Value checkedHorizon=1"
+                                                                                                                                                   in let _ = "commit"
+                                                                                                                                                       in let _ = "resume"
+                                                                                                                                                           in join
+                                                                                                                                                                farInp
+                                                                                                                                                                farExp
+                                                                                                                                                                ( let _ = "resume.genCode"
+                                                                                                                                                                   in (GHC.Types.:) 'd' ((GHC.Types.:) 'e' GHC.Types . [])
+                                                                                                                                                                )
+                                                                                                                                                                cs
+                                                                                                                                                else
+                                                                                                                                                  let _ = "checkToken.fail"
+                                                                                                                                                   in let failExp =
+                                                                                                                                                            Data.Set.Internal.Bin
+                                                                                                                                                              1
+                                                                                                                                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                  ( case inputToken of
+                                                                                                                                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'e'
+                                                                                                                                                                  )
+                                                                                                                                                              )
+                                                                                                                                                              Data.Set.Internal.Tip
+                                                                                                                                                              Data.Set.Internal.Tip
+                                                                                                                                                       in let (#
+                                                                                                                                                                farInp,
+                                                                                                                                                                farExp
+                                                                                                                                                                #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp cs of
+                                                                                                                                                                  GHC.Types.LT ->
+                                                                                                                                                                    (#
+                                                                                                                                                                      cs,
+                                                                                                                                                                      failExp
+                                                                                                                                                                    #)
+                                                                                                                                                                  GHC.Types.EQ ->
+                                                                                                                                                                    (#
+                                                                                                                                                                      farInp,
+                                                                                                                                                                      failExp GHC.Base.<> farExp
+                                                                                                                                                                    #)
+                                                                                                                                                                  GHC.Types.GT ->
+                                                                                                                                                                    (#
+                                                                                                                                                                      farInp,
+                                                                                                                                                                      farExp
+                                                                                                                                                                    #)
+                                                                                                                                                           in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                                                                        else
+                                                                                                                          let _ = "checkToken.fail"
+                                                                                                                           in let failExp =
+                                                                                                                                    Data.Set.Internal.Bin
+                                                                                                                                      1
+                                                                                                                                      ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                          ( case inputToken of
+                                                                                                                                              (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'd'
+                                                                                                                                          )
+                                                                                                                                      )
+                                                                                                                                      Data.Set.Internal.Tip
+                                                                                                                                      Data.Set.Internal.Tip
+                                                                                                                               in let (#
+                                                                                                                                        farInp,
+                                                                                                                                        farExp
+                                                                                                                                        #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                          GHC.Types.LT ->
+                                                                                                                                            (#
+                                                                                                                                              inp,
+                                                                                                                                              failExp
+                                                                                                                                            #)
+                                                                                                                                          GHC.Types.EQ ->
+                                                                                                                                            (#
+                                                                                                                                              farInp,
+                                                                                                                                              failExp GHC.Base.<> farExp
+                                                                                                                                            #)
+                                                                                                                                          GHC.Types.GT ->
+                                                                                                                                            (#
+                                                                                                                                              farInp,
+                                                                                                                                              farExp
+                                                                                                                                            #)
+                                                                                                                                   in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                            else
+                                                                                                              let _ = "checkHorizon.newCheck.fail"
+                                                                                                               in let failExp =
+                                                                                                                        Data.Set.Internal.Bin
+                                                                                                                          1
+                                                                                                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                              ( case inputToken of
+                                                                                                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
+                                                                                                                              )
+                                                                                                                          )
+                                                                                                                          Data.Set.Internal.Tip
+                                                                                                                          Data.Set.Internal.Tip
+                                                                                                                   in let (#
+                                                                                                                            farInp,
+                                                                                                                            farExp
+                                                                                                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                              GHC.Types.LT ->
+                                                                                                                                (#
+                                                                                                                                  inp,
+                                                                                                                                  failExp
+                                                                                                                                #)
+                                                                                                                              GHC.Types.EQ ->
+                                                                                                                                (#
+                                                                                                                                  farInp,
+                                                                                                                                  failExp GHC.Base.<> farExp
+                                                                                                                                #)
+                                                                                                                              GHC.Types.GT ->
+                                                                                                                                (#
+                                                                                                                                  farInp,
+                                                                                                                                  farExp
+                                                                                                                                #)
+                                                                                                                       in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                        else
+                                                                          let _ = "choicesBranch.else"
+                                                                           in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                               in let _ = "catch ExceptionFailure checkedHorizon=2"
+                                                   in let onException =
+                                                            let _ = "onException"
+                                                             in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                  let _ = "loadInput checkedHorizon=2"
+                                                                   in let _ = "checkHorizon.oldCheck: checkedHorizon=2"
+                                                                       in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                       in let _ = "pushValue"
+                                                           in let _ = "comment: satisfy ((GHC.Classes.==) 'a')"
+                                                               in let _ = "checkHorizon.oldCheck: checkedHorizon=2"
+                                                                   in let _ = "checkToken"
+                                                                       in let !(#
+                                                                                 c,
+                                                                                 cs
+                                                                                 #) = readNext inp
+                                                                           in if (GHC.Classes.==) 'a' c
+                                                                                then
+                                                                                  let _ = "lift2Value checkedHorizon=1"
+                                                                                   in let _ = "comment: satisfy ((GHC.Classes.==) 'b')"
+                                                                                       in let _ = "checkHorizon.oldCheck: checkedHorizon=1"
+                                                                                           in let _ = "checkToken"
+                                                                                               in let !(#
+                                                                                                         c,
+                                                                                                         cs
+                                                                                                         #) = readNext cs
+                                                                                                   in if (GHC.Classes.==) 'b' c
+                                                                                                        then
+                                                                                                          let _ = "lift2Value checkedHorizon=0"
+                                                                                                           in let _ = "comment: satisfy ((GHC.Classes.==) 'c')"
+                                                                                                               in let inp = cs
+                                                                                                                   in let readFail = onException
+                                                                                                                       in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=1"
+                                                                                                                           in if readMore inp
+                                                                                                                                then
+                                                                                                                                  let _ = "checkToken"
+                                                                                                                                   in let !(#
+                                                                                                                                             c,
+                                                                                                                                             cs
+                                                                                                                                             #) = readNext inp
+                                                                                                                                       in if (GHC.Classes.==) 'c' c
+                                                                                                                                            then
+                                                                                                                                              let _ = "lift2Value checkedHorizon=1"
+                                                                                                                                               in let _ = "commit"
+                                                                                                                                                   in let _ = "commit"
+                                                                                                                                                       in let _ = "resume"
+                                                                                                                                                           in join
+                                                                                                                                                                init
+                                                                                                                                                                Data.Set.Internal.empty
+                                                                                                                                                                ( let _ = "resume.genCode"
+                                                                                                                                                                   in (GHC.Types.:) 'a' ((GHC.Types.:) 'b' ((GHC.Types.:) 'c' GHC.Types . []))
+                                                                                                                                                                )
+                                                                                                                                                                cs
+                                                                                                                                            else
+                                                                                                                                              let _ = "checkToken.fail"
+                                                                                                                                               in let failExp =
+                                                                                                                                                        Data.Set.Internal.Bin
+                                                                                                                                                          1
+                                                                                                                                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                              ( case inputToken of
+                                                                                                                                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'c'
+                                                                                                                                                              )
+                                                                                                                                                          )
+                                                                                                                                                          Data.Set.Internal.Tip
+                                                                                                                                                          Data.Set.Internal.Tip
+                                                                                                                                                   in let (#
+                                                                                                                                                            farInp,
+                                                                                                                                                            farExp
+                                                                                                                                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                                                                                              GHC.Types.LT ->
+                                                                                                                                                                (#
+                                                                                                                                                                  inp,
+                                                                                                                                                                  failExp
+                                                                                                                                                                #)
+                                                                                                                                                              GHC.Types.EQ ->
+                                                                                                                                                                (#
+                                                                                                                                                                  init,
+                                                                                                                                                                  failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                                                                                                #)
+                                                                                                                                                              GHC.Types.GT ->
+                                                                                                                                                                (#
+                                                                                                                                                                  init,
+                                                                                                                                                                  Data.Set.Internal.empty
+                                                                                                                                                                #)
+                                                                                                                                                       in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                                                else
+                                                                                                                                  let _ = "checkHorizon.newCheck.fail"
+                                                                                                                                   in let failExp =
+                                                                                                                                            Data.Set.Internal.Bin
+                                                                                                                                              1
+                                                                                                                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                  ( case inputToken of
+                                                                                                                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
+                                                                                                                                                  )
+                                                                                                                                              )
+                                                                                                                                              Data.Set.Internal.Tip
+                                                                                                                                              Data.Set.Internal.Tip
+                                                                                                                                       in let (#
+                                                                                                                                                farInp,
+                                                                                                                                                farExp
+                                                                                                                                                #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                                                                                  GHC.Types.LT ->
+                                                                                                                                                    (#
+                                                                                                                                                      inp,
+                                                                                                                                                      failExp
+                                                                                                                                                    #)
+                                                                                                                                                  GHC.Types.EQ ->
+                                                                                                                                                    (#
+                                                                                                                                                      init,
+                                                                                                                                                      failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                                                                                    #)
+                                                                                                                                                  GHC.Types.GT ->
+                                                                                                                                                    (#
+                                                                                                                                                      init,
+                                                                                                                                                      Data.Set.Internal.empty
+                                                                                                                                                    #)
+                                                                                                                                           in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                        else
+                                                                                                          let _ = "checkToken.fail"
+                                                                                                           in let failExp =
+                                                                                                                    Data.Set.Internal.Bin
+                                                                                                                      1
+                                                                                                                      ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                          ( case inputToken of
+                                                                                                                              (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'b'
+                                                                                                                          )
+                                                                                                                      )
+                                                                                                                      Data.Set.Internal.Tip
+                                                                                                                      Data.Set.Internal.Tip
+                                                                                                               in let (#
+                                                                                                                        farInp,
+                                                                                                                        farExp
+                                                                                                                        #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init cs of
+                                                                                                                          GHC.Types.LT ->
+                                                                                                                            (#
+                                                                                                                              cs,
+                                                                                                                              failExp
+                                                                                                                            #)
+                                                                                                                          GHC.Types.EQ ->
+                                                                                                                            (#
+                                                                                                                              init,
+                                                                                                                              failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                                                            #)
+                                                                                                                          GHC.Types.GT ->
+                                                                                                                            (#
+                                                                                                                              init,
+                                                                                                                              Data.Set.Internal.empty
+                                                                                                                            #)
+                                                                                                                   in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                                else
+                                                                                  let _ = "checkToken.fail"
+                                                                                   in let failExp =
+                                                                                            Data.Set.Internal.Bin
+                                                                                              1
+                                                                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                  ( case inputToken of
+                                                                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
+                                                                                                  )
+                                                                                              )
+                                                                                              Data.Set.Internal.Tip
+                                                                                              Data.Set.Internal.Tip
+                                                                                       in let (#
+                                                                                                farInp,
+                                                                                                farExp
+                                                                                                #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                                  GHC.Types.LT ->
+                                                                                                    (#
+                                                                                                      inp,
+                                                                                                      failExp
+                                                                                                    #)
+                                                                                                  GHC.Types.EQ ->
+                                                                                                    (#
+                                                                                                      init,
+                                                                                                      failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                                    #)
+                                                                                                  GHC.Types.GT ->
+                                                                                                    (#
+                                                                                                      init,
+                                                                                                      Data.Set.Internal.empty
+                                                                                                    #)
+                                                                                           in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                            else
+                              let _ = "checkHorizon.newCheck.fail"
+                               in let failExp =
+                                        Data.Set.Internal.Bin
+                                          1
+                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                              ( case inputToken of
+                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
+                                              )
+                                          )
+                                          Data.Set.Internal.Tip
+                                          Data.Set.Internal.Tip
+                                   in let (#
+                                            farInp,
+                                            farExp
+                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                              GHC.Types.LT ->
+                                                (#
+                                                  inp,
+                                                  failExp
+                                                #)
+                                              GHC.Types.EQ ->
+                                                (#
+                                                  init,
+                                                  failExp GHC.Base.<> Data.Set.Internal.empty
+                                                #)
+                                              GHC.Types.GT ->
+                                                (#
+                                                  init,
+                                                  Data.Set.Internal.empty
+                                                #)
+                                       in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+        )
diff --git a/tests/Golden/Splice/G19.expected.txt b/tests/Golden/Splice/G19.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Splice/G19.expected.txt
@@ -0,0 +1,726 @@
+\(input :: inp) ->
+  let !(#
+         init,
+         readMore,
+         readNext
+         #) =
+          let _ = "cursorOf"
+           in let next
+                    ( t@( Data.Text.Internal.Text
+                            arr
+                            off
+                            unconsumed
+                          )
+                      ) =
+                      let !( Data.Text.Unsafe.Iter
+                               c
+                               d
+                             ) = Data.Text.Unsafe.iter t 0
+                       in (#
+                            c,
+                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
+                          #)
+                  more
+                    ( Data.Text.Internal.Text
+                        _
+                        _
+                        unconsumed
+                      ) = unconsumed GHC.Classes.> 0
+               in (# input, more, next #)
+      finalRet = \_farInp _farExp v _inp -> Symantic.Parser.Machine.Generate.returnST GHC.Base.$ Data.Either.Right v
+      finalRaise ::
+        forall st b.
+        Symantic.Parser.Machine.Generate.OnException
+          st
+          inp
+          b = \(!exn) _failInp (!farInp) (!farExp) ->
+          Symantic.Parser.Machine.Generate.returnST GHC.Base.$
+            Data.Either.Left
+              Symantic.Parser.Machine.Generate.ParsingError
+                { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
+                  Symantic.Parser.Machine.Generate.parsingErrorException = exn,
+                  Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
+                    if readMore farInp
+                      then
+                        GHC.Maybe.Just
+                          ( let (#
+                                  c,
+                                  _
+                                  #) = readNext farInp
+                             in c
+                          )
+                      else GHC.Maybe.Nothing,
+                  Symantic.Parser.Machine.Generate.parsingErrorExpecting =
+                    let ( minHoriz,
+                          res
+                          ) =
+                            Data.Set.Internal.foldr
+                              ( \f
+                                 ( minH,
+                                   acc
+                                   ) -> case Symantic.Parser.Grammar.Combinators.unSomeFailure f of
+                                    GHC.Maybe.Just (Symantic.Parser.Grammar.Combinators.FailureHorizon h :: Symantic.Parser.Grammar.Combinators.Failure (Symantic.Parser.Grammar.Combinators.CombSatisfiable (Symantic.Parser.Machine.Input.InputToken inp)))
+                                      | GHC.Maybe.Just old <- minH ->
+                                        ( GHC.Maybe.Just (GHC.Classes.min old h),
+                                          acc
+                                        )
+                                      | GHC.Base.otherwise ->
+                                        ( GHC.Maybe.Just h,
+                                          acc
+                                        )
+                                    _ ->
+                                      ( minH,
+                                        f GHC.Types.: acc
+                                      )
+                              )
+                              ( GHC.Maybe.Nothing,
+                                GHC.Types . []
+                              )
+                              farExp
+                     in Data.Set.Internal.fromList GHC.Base.$
+                          ( case minHoriz of
+                              GHC.Maybe.Just h -> Symantic.Parser.Grammar.Combinators.SomeFailure (Symantic.Parser.Grammar.Combinators.FailureHorizon @(Symantic.Parser.Machine.Input.InputToken inp) h) GHC.Types.: res
+                              GHC.Maybe.Nothing -> res
+                          )
+                }
+   in GHC.ST.runST
+        ( let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
+           in let inp = init
+               in let readFail = finalRaise
+                   in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=2"
+                       in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 inp)
+                            then
+                              let
+                               in let _ = "pushValue"
+                                   in let join = \farInp farExp v (!inp) ->
+                                            let _ = "lift2Value checkedHorizon=0"
+                                             in let _ = "resume"
+                                                 in finalRet
+                                                      farInp
+                                                      farExp
+                                                      ( let _ = "resume.genCode"
+                                                         in GHC.Show.show v
+                                                      )
+                                                      inp
+                                       in let _ = "catch ExceptionFailure checkedHorizon=2"
+                                           in let onException =
+                                                    let _ = "onException"
+                                                     in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                          let _ = "comment: raiseAgainIfConsumed"
+                                                           in let _ = "saveInput checkedHorizon=0"
+                                                               in let _ = "lift2Value checkedHorizon=0"
+                                                                   in if ( \( Data.Text.Internal.Text
+                                                                                _
+                                                                                i
+                                                                                _
+                                                                              )
+                                                                            ( Data.Text.Internal.Text
+                                                                                _
+                                                                                j
+                                                                                _
+                                                                              ) -> i GHC.Classes.== j
+                                                                         )
+                                                                        inp
+                                                                        failInp
+                                                                        then
+                                                                          let _ = "choicesBranch checkedHorizon=0"
+                                                                           in let _ = "catch ExceptionFailure checkedHorizon=0"
+                                                                               in let onException =
+                                                                                        let _ = "onException"
+                                                                                         in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                              let _ = "comment: raiseAgainIfConsumed"
+                                                                                               in let _ = "saveInput checkedHorizon=0"
+                                                                                                   in let _ = "lift2Value checkedHorizon=0"
+                                                                                                       in if ( \( Data.Text.Internal.Text
+                                                                                                                    _
+                                                                                                                    i
+                                                                                                                    _
+                                                                                                                  )
+                                                                                                                ( Data.Text.Internal.Text
+                                                                                                                    _
+                                                                                                                    j
+                                                                                                                    _
+                                                                                                                  ) -> i GHC.Classes.== j
+                                                                                                             )
+                                                                                                            failInp
+                                                                                                            failInp
+                                                                                                            then
+                                                                                                              let _ = "choicesBranch checkedHorizon=0"
+                                                                                                               in let _ = "catch ExceptionFailure checkedHorizon=0"
+                                                                                                                   in let onException =
+                                                                                                                            let _ = "onException"
+                                                                                                                             in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                                                                  let _ = "loadInput checkedHorizon=0"
+                                                                                                                                   in let _ = "checkHorizon.noCheck"
+                                                                                                                                       in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                                                       in let _ = "pushValue"
+                                                                                                                           in let _ = "comment: satisfy ((GHC.Classes.==) 'f')"
+                                                                                                                               in let inp = failInp
+                                                                                                                                   in let readFail = onException
+                                                                                                                                       in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=4"
+                                                                                                                                           in if readMore (Symantic.Parser.Machine.Input.shiftRightText 3 inp)
+                                                                                                                                                then
+                                                                                                                                                  let _ = "checkToken"
+                                                                                                                                                   in let !(#
+                                                                                                                                                             c,
+                                                                                                                                                             cs
+                                                                                                                                                             #) = readNext inp
+                                                                                                                                                       in if (GHC.Classes.==) 'f' c
+                                                                                                                                                            then
+                                                                                                                                                              let _ = "lift2Value checkedHorizon=4"
+                                                                                                                                                               in let _ = "comment: satisfy ((GHC.Classes.==) 'g')"
+                                                                                                                                                                   in let _ = "checkHorizon.oldCheck: checkedHorizon=4"
+                                                                                                                                                                       in let _ = "checkToken"
+                                                                                                                                                                           in let !(#
+                                                                                                                                                                                     c,
+                                                                                                                                                                                     cs
+                                                                                                                                                                                     #) = readNext cs
+                                                                                                                                                                               in if (GHC.Classes.==) 'g' c
+                                                                                                                                                                                    then
+                                                                                                                                                                                      let _ = "lift2Value checkedHorizon=3"
+                                                                                                                                                                                       in let _ = "comment: satisfy ((GHC.Classes.==) 'h')"
+                                                                                                                                                                                           in let _ = "checkHorizon.oldCheck: checkedHorizon=3"
+                                                                                                                                                                                               in let _ = "checkToken"
+                                                                                                                                                                                                   in let !(#
+                                                                                                                                                                                                             c,
+                                                                                                                                                                                                             cs
+                                                                                                                                                                                                             #) = readNext cs
+                                                                                                                                                                                                       in if (GHC.Classes.==) 'h' c
+                                                                                                                                                                                                            then
+                                                                                                                                                                                                              let _ = "lift2Value checkedHorizon=2"
+                                                                                                                                                                                                               in let _ = "comment: satisfy ((GHC.Classes.==) 'i')"
+                                                                                                                                                                                                                   in let _ = "checkHorizon.oldCheck: checkedHorizon=2"
+                                                                                                                                                                                                                       in let _ = "checkToken"
+                                                                                                                                                                                                                           in let !(#
+                                                                                                                                                                                                                                     c,
+                                                                                                                                                                                                                                     cs
+                                                                                                                                                                                                                                     #) = readNext cs
+                                                                                                                                                                                                                               in if (GHC.Classes.==) 'i' c
+                                                                                                                                                                                                                                    then
+                                                                                                                                                                                                                                      let _ = "lift2Value checkedHorizon=1"
+                                                                                                                                                                                                                                       in let _ = "commit"
+                                                                                                                                                                                                                                           in let _ = "resume"
+                                                                                                                                                                                                                                               in join
+                                                                                                                                                                                                                                                    farInp
+                                                                                                                                                                                                                                                    farExp
+                                                                                                                                                                                                                                                    ( let _ = "resume.genCode"
+                                                                                                                                                                                                                                                       in (GHC.Types.:) 'f' ((GHC.Types.:) 'g' ((GHC.Types.:) 'h' ((GHC.Types.:) 'i' GHC.Types . [])))
+                                                                                                                                                                                                                                                    )
+                                                                                                                                                                                                                                                    cs
+                                                                                                                                                                                                                                    else
+                                                                                                                                                                                                                                      let _ = "checkToken.fail"
+                                                                                                                                                                                                                                       in let failExp =
+                                                                                                                                                                                                                                                Data.Set.Internal.Bin
+                                                                                                                                                                                                                                                  1
+                                                                                                                                                                                                                                                  ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                                                                      ( case inputToken of
+                                                                                                                                                                                                                                                          (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'i'
+                                                                                                                                                                                                                                                      )
+                                                                                                                                                                                                                                                  )
+                                                                                                                                                                                                                                                  Data.Set.Internal.Tip
+                                                                                                                                                                                                                                                  Data.Set.Internal.Tip
+                                                                                                                                                                                                                                           in let (#
+                                                                                                                                                                                                                                                    farInp,
+                                                                                                                                                                                                                                                    farExp
+                                                                                                                                                                                                                                                    #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp cs of
+                                                                                                                                                                                                                                                      GHC.Types.LT ->
+                                                                                                                                                                                                                                                        (#
+                                                                                                                                                                                                                                                          cs,
+                                                                                                                                                                                                                                                          failExp
+                                                                                                                                                                                                                                                        #)
+                                                                                                                                                                                                                                                      GHC.Types.EQ ->
+                                                                                                                                                                                                                                                        (#
+                                                                                                                                                                                                                                                          farInp,
+                                                                                                                                                                                                                                                          failExp GHC.Base.<> farExp
+                                                                                                                                                                                                                                                        #)
+                                                                                                                                                                                                                                                      GHC.Types.GT ->
+                                                                                                                                                                                                                                                        (#
+                                                                                                                                                                                                                                                          farInp,
+                                                                                                                                                                                                                                                          farExp
+                                                                                                                                                                                                                                                        #)
+                                                                                                                                                                                                                                               in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                                                                                                                                                            else
+                                                                                                                                                                                                              let _ = "checkToken.fail"
+                                                                                                                                                                                                               in let failExp =
+                                                                                                                                                                                                                        Data.Set.Internal.Bin
+                                                                                                                                                                                                                          1
+                                                                                                                                                                                                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                                              ( case inputToken of
+                                                                                                                                                                                                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'h'
+                                                                                                                                                                                                                              )
+                                                                                                                                                                                                                          )
+                                                                                                                                                                                                                          Data.Set.Internal.Tip
+                                                                                                                                                                                                                          Data.Set.Internal.Tip
+                                                                                                                                                                                                                   in let (#
+                                                                                                                                                                                                                            farInp,
+                                                                                                                                                                                                                            farExp
+                                                                                                                                                                                                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp cs of
+                                                                                                                                                                                                                              GHC.Types.LT ->
+                                                                                                                                                                                                                                (#
+                                                                                                                                                                                                                                  cs,
+                                                                                                                                                                                                                                  failExp
+                                                                                                                                                                                                                                #)
+                                                                                                                                                                                                                              GHC.Types.EQ ->
+                                                                                                                                                                                                                                (#
+                                                                                                                                                                                                                                  farInp,
+                                                                                                                                                                                                                                  failExp GHC.Base.<> farExp
+                                                                                                                                                                                                                                #)
+                                                                                                                                                                                                                              GHC.Types.GT ->
+                                                                                                                                                                                                                                (#
+                                                                                                                                                                                                                                  farInp,
+                                                                                                                                                                                                                                  farExp
+                                                                                                                                                                                                                                #)
+                                                                                                                                                                                                                       in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                                                                                                                                    else
+                                                                                                                                                                                      let _ = "checkToken.fail"
+                                                                                                                                                                                       in let failExp =
+                                                                                                                                                                                                Data.Set.Internal.Bin
+                                                                                                                                                                                                  1
+                                                                                                                                                                                                  ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                                      ( case inputToken of
+                                                                                                                                                                                                          (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'g'
+                                                                                                                                                                                                      )
+                                                                                                                                                                                                  )
+                                                                                                                                                                                                  Data.Set.Internal.Tip
+                                                                                                                                                                                                  Data.Set.Internal.Tip
+                                                                                                                                                                                           in let (#
+                                                                                                                                                                                                    farInp,
+                                                                                                                                                                                                    farExp
+                                                                                                                                                                                                    #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp cs of
+                                                                                                                                                                                                      GHC.Types.LT ->
+                                                                                                                                                                                                        (#
+                                                                                                                                                                                                          cs,
+                                                                                                                                                                                                          failExp
+                                                                                                                                                                                                        #)
+                                                                                                                                                                                                      GHC.Types.EQ ->
+                                                                                                                                                                                                        (#
+                                                                                                                                                                                                          farInp,
+                                                                                                                                                                                                          failExp GHC.Base.<> farExp
+                                                                                                                                                                                                        #)
+                                                                                                                                                                                                      GHC.Types.GT ->
+                                                                                                                                                                                                        (#
+                                                                                                                                                                                                          farInp,
+                                                                                                                                                                                                          farExp
+                                                                                                                                                                                                        #)
+                                                                                                                                                                                               in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                                                                                                            else
+                                                                                                                                                              let _ = "checkToken.fail"
+                                                                                                                                                               in let failExp =
+                                                                                                                                                                        Data.Set.Internal.Bin
+                                                                                                                                                                          1
+                                                                                                                                                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                              ( case inputToken of
+                                                                                                                                                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'f'
+                                                                                                                                                                              )
+                                                                                                                                                                          )
+                                                                                                                                                                          Data.Set.Internal.Tip
+                                                                                                                                                                          Data.Set.Internal.Tip
+                                                                                                                                                                   in let (#
+                                                                                                                                                                            farInp,
+                                                                                                                                                                            farExp
+                                                                                                                                                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                                                              GHC.Types.LT ->
+                                                                                                                                                                                (#
+                                                                                                                                                                                  inp,
+                                                                                                                                                                                  failExp
+                                                                                                                                                                                #)
+                                                                                                                                                                              GHC.Types.EQ ->
+                                                                                                                                                                                (#
+                                                                                                                                                                                  farInp,
+                                                                                                                                                                                  failExp GHC.Base.<> farExp
+                                                                                                                                                                                #)
+                                                                                                                                                                              GHC.Types.GT ->
+                                                                                                                                                                                (#
+                                                                                                                                                                                  farInp,
+                                                                                                                                                                                  farExp
+                                                                                                                                                                                #)
+                                                                                                                                                                       in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                                                                else
+                                                                                                                                                  let _ = "checkHorizon.newCheck.fail"
+                                                                                                                                                   in let failExp =
+                                                                                                                                                            Data.Set.Internal.Bin
+                                                                                                                                                              1
+                                                                                                                                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                  ( case inputToken of
+                                                                                                                                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 4
+                                                                                                                                                                  )
+                                                                                                                                                              )
+                                                                                                                                                              Data.Set.Internal.Tip
+                                                                                                                                                              Data.Set.Internal.Tip
+                                                                                                                                                       in let (#
+                                                                                                                                                                farInp,
+                                                                                                                                                                farExp
+                                                                                                                                                                #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                                                  GHC.Types.LT ->
+                                                                                                                                                                    (#
+                                                                                                                                                                      inp,
+                                                                                                                                                                      failExp
+                                                                                                                                                                    #)
+                                                                                                                                                                  GHC.Types.EQ ->
+                                                                                                                                                                    (#
+                                                                                                                                                                      farInp,
+                                                                                                                                                                      failExp GHC.Base.<> farExp
+                                                                                                                                                                    #)
+                                                                                                                                                                  GHC.Types.GT ->
+                                                                                                                                                                    (#
+                                                                                                                                                                      farInp,
+                                                                                                                                                                      farExp
+                                                                                                                                                                    #)
+                                                                                                                                                           in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                            else
+                                                                                                              let _ = "choicesBranch.else"
+                                                                                                               in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                   in let _ = "catch ExceptionFailure checkedHorizon=0"
+                                                                                       in let onException =
+                                                                                                let _ = "onException"
+                                                                                                 in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                                      let _ = "loadInput checkedHorizon=0"
+                                                                                                       in let _ = "checkHorizon.noCheck"
+                                                                                                           in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                           in let _ = "pushValue"
+                                                                                               in let _ = "comment: satisfy ((GHC.Classes.==) 'd')"
+                                                                                                   in let inp = failInp
+                                                                                                       in let readFail = onException
+                                                                                                           in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=2"
+                                                                                                               in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 inp)
+                                                                                                                    then
+                                                                                                                      let _ = "checkToken"
+                                                                                                                       in let !(#
+                                                                                                                                 c,
+                                                                                                                                 cs
+                                                                                                                                 #) = readNext inp
+                                                                                                                           in if (GHC.Classes.==) 'd' c
+                                                                                                                                then
+                                                                                                                                  let _ = "lift2Value checkedHorizon=2"
+                                                                                                                                   in let _ = "comment: satisfy ((GHC.Classes.==) 'e')"
+                                                                                                                                       in let _ = "checkHorizon.oldCheck: checkedHorizon=2"
+                                                                                                                                           in let _ = "checkToken"
+                                                                                                                                               in let !(#
+                                                                                                                                                         c,
+                                                                                                                                                         cs
+                                                                                                                                                         #) = readNext cs
+                                                                                                                                                   in if (GHC.Classes.==) 'e' c
+                                                                                                                                                        then
+                                                                                                                                                          let _ = "lift2Value checkedHorizon=1"
+                                                                                                                                                           in let _ = "commit"
+                                                                                                                                                               in let _ = "commit"
+                                                                                                                                                                   in let _ = "resume"
+                                                                                                                                                                       in join
+                                                                                                                                                                            farInp
+                                                                                                                                                                            farExp
+                                                                                                                                                                            ( let _ = "resume.genCode"
+                                                                                                                                                                               in (GHC.Types.:) 'd' ((GHC.Types.:) 'e' GHC.Types . [])
+                                                                                                                                                                            )
+                                                                                                                                                                            cs
+                                                                                                                                                        else
+                                                                                                                                                          let _ = "checkToken.fail"
+                                                                                                                                                           in let failExp =
+                                                                                                                                                                    Data.Set.Internal.Bin
+                                                                                                                                                                      1
+                                                                                                                                                                      ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                          ( case inputToken of
+                                                                                                                                                                              (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'e'
+                                                                                                                                                                          )
+                                                                                                                                                                      )
+                                                                                                                                                                      Data.Set.Internal.Tip
+                                                                                                                                                                      Data.Set.Internal.Tip
+                                                                                                                                                               in let (#
+                                                                                                                                                                        farInp,
+                                                                                                                                                                        farExp
+                                                                                                                                                                        #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp cs of
+                                                                                                                                                                          GHC.Types.LT ->
+                                                                                                                                                                            (#
+                                                                                                                                                                              cs,
+                                                                                                                                                                              failExp
+                                                                                                                                                                            #)
+                                                                                                                                                                          GHC.Types.EQ ->
+                                                                                                                                                                            (#
+                                                                                                                                                                              farInp,
+                                                                                                                                                                              failExp GHC.Base.<> farExp
+                                                                                                                                                                            #)
+                                                                                                                                                                          GHC.Types.GT ->
+                                                                                                                                                                            (#
+                                                                                                                                                                              farInp,
+                                                                                                                                                                              farExp
+                                                                                                                                                                            #)
+                                                                                                                                                                   in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                                                                                else
+                                                                                                                                  let _ = "checkToken.fail"
+                                                                                                                                   in let failExp =
+                                                                                                                                            Data.Set.Internal.Bin
+                                                                                                                                              1
+                                                                                                                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                  ( case inputToken of
+                                                                                                                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'd'
+                                                                                                                                                  )
+                                                                                                                                              )
+                                                                                                                                              Data.Set.Internal.Tip
+                                                                                                                                              Data.Set.Internal.Tip
+                                                                                                                                       in let (#
+                                                                                                                                                farInp,
+                                                                                                                                                farExp
+                                                                                                                                                #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                                  GHC.Types.LT ->
+                                                                                                                                                    (#
+                                                                                                                                                      inp,
+                                                                                                                                                      failExp
+                                                                                                                                                    #)
+                                                                                                                                                  GHC.Types.EQ ->
+                                                                                                                                                    (#
+                                                                                                                                                      farInp,
+                                                                                                                                                      failExp GHC.Base.<> farExp
+                                                                                                                                                    #)
+                                                                                                                                                  GHC.Types.GT ->
+                                                                                                                                                    (#
+                                                                                                                                                      farInp,
+                                                                                                                                                      farExp
+                                                                                                                                                    #)
+                                                                                                                                           in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                                    else
+                                                                                                                      let _ = "checkHorizon.newCheck.fail"
+                                                                                                                       in let failExp =
+                                                                                                                                Data.Set.Internal.Bin
+                                                                                                                                  1
+                                                                                                                                  ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                      ( case inputToken of
+                                                                                                                                          (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
+                                                                                                                                      )
+                                                                                                                                  )
+                                                                                                                                  Data.Set.Internal.Tip
+                                                                                                                                  Data.Set.Internal.Tip
+                                                                                                                           in let (#
+                                                                                                                                    farInp,
+                                                                                                                                    farExp
+                                                                                                                                    #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                      GHC.Types.LT ->
+                                                                                                                                        (#
+                                                                                                                                          inp,
+                                                                                                                                          failExp
+                                                                                                                                        #)
+                                                                                                                                      GHC.Types.EQ ->
+                                                                                                                                        (#
+                                                                                                                                          farInp,
+                                                                                                                                          failExp GHC.Base.<> farExp
+                                                                                                                                        #)
+                                                                                                                                      GHC.Types.GT ->
+                                                                                                                                        (#
+                                                                                                                                          farInp,
+                                                                                                                                          farExp
+                                                                                                                                        #)
+                                                                                                                               in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                        else
+                                                                          let _ = "choicesBranch.else"
+                                                                           in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                               in let _ = "catch ExceptionFailure checkedHorizon=2"
+                                                   in let onException =
+                                                            let _ = "onException"
+                                                             in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                  let _ = "loadInput checkedHorizon=2"
+                                                                   in let _ = "checkHorizon.oldCheck: checkedHorizon=2"
+                                                                       in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                       in let _ = "pushValue"
+                                                           in let _ = "comment: satisfy ((GHC.Classes.==) 'a')"
+                                                               in let _ = "checkHorizon.oldCheck: checkedHorizon=2"
+                                                                   in let _ = "checkToken"
+                                                                       in let !(#
+                                                                                 c,
+                                                                                 cs
+                                                                                 #) = readNext inp
+                                                                           in if (GHC.Classes.==) 'a' c
+                                                                                then
+                                                                                  let _ = "lift2Value checkedHorizon=1"
+                                                                                   in let _ = "comment: satisfy ((GHC.Classes.==) 'b')"
+                                                                                       in let _ = "checkHorizon.oldCheck: checkedHorizon=1"
+                                                                                           in let _ = "checkToken"
+                                                                                               in let !(#
+                                                                                                         c,
+                                                                                                         cs
+                                                                                                         #) = readNext cs
+                                                                                                   in if (GHC.Classes.==) 'b' c
+                                                                                                        then
+                                                                                                          let _ = "lift2Value checkedHorizon=0"
+                                                                                                           in let _ = "comment: satisfy ((GHC.Classes.==) 'c')"
+                                                                                                               in let inp = cs
+                                                                                                                   in let readFail = onException
+                                                                                                                       in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=1"
+                                                                                                                           in if readMore inp
+                                                                                                                                then
+                                                                                                                                  let _ = "checkToken"
+                                                                                                                                   in let !(#
+                                                                                                                                             c,
+                                                                                                                                             cs
+                                                                                                                                             #) = readNext inp
+                                                                                                                                       in if (GHC.Classes.==) 'c' c
+                                                                                                                                            then
+                                                                                                                                              let _ = "lift2Value checkedHorizon=1"
+                                                                                                                                               in let _ = "commit"
+                                                                                                                                                   in let _ = "commit"
+                                                                                                                                                       in let _ = "resume"
+                                                                                                                                                           in join
+                                                                                                                                                                init
+                                                                                                                                                                Data.Set.Internal.empty
+                                                                                                                                                                ( let _ = "resume.genCode"
+                                                                                                                                                                   in (GHC.Types.:) 'a' ((GHC.Types.:) 'b' ((GHC.Types.:) 'c' GHC.Types . []))
+                                                                                                                                                                )
+                                                                                                                                                                cs
+                                                                                                                                            else
+                                                                                                                                              let _ = "checkToken.fail"
+                                                                                                                                               in let failExp =
+                                                                                                                                                        Data.Set.Internal.Bin
+                                                                                                                                                          1
+                                                                                                                                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                              ( case inputToken of
+                                                                                                                                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'c'
+                                                                                                                                                              )
+                                                                                                                                                          )
+                                                                                                                                                          Data.Set.Internal.Tip
+                                                                                                                                                          Data.Set.Internal.Tip
+                                                                                                                                                   in let (#
+                                                                                                                                                            farInp,
+                                                                                                                                                            farExp
+                                                                                                                                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                                                                                              GHC.Types.LT ->
+                                                                                                                                                                (#
+                                                                                                                                                                  inp,
+                                                                                                                                                                  failExp
+                                                                                                                                                                #)
+                                                                                                                                                              GHC.Types.EQ ->
+                                                                                                                                                                (#
+                                                                                                                                                                  init,
+                                                                                                                                                                  failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                                                                                                #)
+                                                                                                                                                              GHC.Types.GT ->
+                                                                                                                                                                (#
+                                                                                                                                                                  init,
+                                                                                                                                                                  Data.Set.Internal.empty
+                                                                                                                                                                #)
+                                                                                                                                                       in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                                                else
+                                                                                                                                  let _ = "checkHorizon.newCheck.fail"
+                                                                                                                                   in let failExp =
+                                                                                                                                            Data.Set.Internal.Bin
+                                                                                                                                              1
+                                                                                                                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                  ( case inputToken of
+                                                                                                                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
+                                                                                                                                                  )
+                                                                                                                                              )
+                                                                                                                                              Data.Set.Internal.Tip
+                                                                                                                                              Data.Set.Internal.Tip
+                                                                                                                                       in let (#
+                                                                                                                                                farInp,
+                                                                                                                                                farExp
+                                                                                                                                                #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                                                                                  GHC.Types.LT ->
+                                                                                                                                                    (#
+                                                                                                                                                      inp,
+                                                                                                                                                      failExp
+                                                                                                                                                    #)
+                                                                                                                                                  GHC.Types.EQ ->
+                                                                                                                                                    (#
+                                                                                                                                                      init,
+                                                                                                                                                      failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                                                                                    #)
+                                                                                                                                                  GHC.Types.GT ->
+                                                                                                                                                    (#
+                                                                                                                                                      init,
+                                                                                                                                                      Data.Set.Internal.empty
+                                                                                                                                                    #)
+                                                                                                                                           in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                        else
+                                                                                                          let _ = "checkToken.fail"
+                                                                                                           in let failExp =
+                                                                                                                    Data.Set.Internal.Bin
+                                                                                                                      1
+                                                                                                                      ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                          ( case inputToken of
+                                                                                                                              (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'b'
+                                                                                                                          )
+                                                                                                                      )
+                                                                                                                      Data.Set.Internal.Tip
+                                                                                                                      Data.Set.Internal.Tip
+                                                                                                               in let (#
+                                                                                                                        farInp,
+                                                                                                                        farExp
+                                                                                                                        #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init cs of
+                                                                                                                          GHC.Types.LT ->
+                                                                                                                            (#
+                                                                                                                              cs,
+                                                                                                                              failExp
+                                                                                                                            #)
+                                                                                                                          GHC.Types.EQ ->
+                                                                                                                            (#
+                                                                                                                              init,
+                                                                                                                              failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                                                            #)
+                                                                                                                          GHC.Types.GT ->
+                                                                                                                            (#
+                                                                                                                              init,
+                                                                                                                              Data.Set.Internal.empty
+                                                                                                                            #)
+                                                                                                                   in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                                else
+                                                                                  let _ = "checkToken.fail"
+                                                                                   in let failExp =
+                                                                                            Data.Set.Internal.Bin
+                                                                                              1
+                                                                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                  ( case inputToken of
+                                                                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
+                                                                                                  )
+                                                                                              )
+                                                                                              Data.Set.Internal.Tip
+                                                                                              Data.Set.Internal.Tip
+                                                                                       in let (#
+                                                                                                farInp,
+                                                                                                farExp
+                                                                                                #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                                  GHC.Types.LT ->
+                                                                                                    (#
+                                                                                                      inp,
+                                                                                                      failExp
+                                                                                                    #)
+                                                                                                  GHC.Types.EQ ->
+                                                                                                    (#
+                                                                                                      init,
+                                                                                                      failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                                    #)
+                                                                                                  GHC.Types.GT ->
+                                                                                                    (#
+                                                                                                      init,
+                                                                                                      Data.Set.Internal.empty
+                                                                                                    #)
+                                                                                           in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                            else
+                              let _ = "checkHorizon.newCheck.fail"
+                               in let failExp =
+                                        Data.Set.Internal.Bin
+                                          1
+                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                              ( case inputToken of
+                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
+                                              )
+                                          )
+                                          Data.Set.Internal.Tip
+                                          Data.Set.Internal.Tip
+                                   in let (#
+                                            farInp,
+                                            farExp
+                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                              GHC.Types.LT ->
+                                                (#
+                                                  inp,
+                                                  failExp
+                                                #)
+                                              GHC.Types.EQ ->
+                                                (#
+                                                  init,
+                                                  failExp GHC.Base.<> Data.Set.Internal.empty
+                                                #)
+                                              GHC.Types.GT ->
+                                                (#
+                                                  init,
+                                                  Data.Set.Internal.empty
+                                                #)
+                                       in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+        )
diff --git a/tests/Golden/Splice/G2.expected.txt b/tests/Golden/Splice/G2.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Splice/G2.expected.txt
@@ -0,0 +1,271 @@
+\(input :: inp) ->
+  let !(#
+         init,
+         readMore,
+         readNext
+         #) =
+          let _ = "cursorOf"
+           in let next
+                    ( t@( Data.Text.Internal.Text
+                            arr
+                            off
+                            unconsumed
+                          )
+                      ) =
+                      let !( Data.Text.Unsafe.Iter
+                               c
+                               d
+                             ) = Data.Text.Unsafe.iter t 0
+                       in (#
+                            c,
+                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
+                          #)
+                  more
+                    ( Data.Text.Internal.Text
+                        _
+                        _
+                        unconsumed
+                      ) = unconsumed GHC.Classes.> 0
+               in (# input, more, next #)
+      finalRet = \_farInp _farExp v _inp -> Symantic.Parser.Machine.Generate.returnST GHC.Base.$ Data.Either.Right v
+      finalRaise ::
+        forall st b.
+        Symantic.Parser.Machine.Generate.OnException
+          st
+          inp
+          b = \(!exn) _failInp (!farInp) (!farExp) ->
+          Symantic.Parser.Machine.Generate.returnST GHC.Base.$
+            Data.Either.Left
+              Symantic.Parser.Machine.Generate.ParsingError
+                { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
+                  Symantic.Parser.Machine.Generate.parsingErrorException = exn,
+                  Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
+                    if readMore farInp
+                      then
+                        GHC.Maybe.Just
+                          ( let (#
+                                  c,
+                                  _
+                                  #) = readNext farInp
+                             in c
+                          )
+                      else GHC.Maybe.Nothing,
+                  Symantic.Parser.Machine.Generate.parsingErrorExpecting =
+                    let ( minHoriz,
+                          res
+                          ) =
+                            Data.Set.Internal.foldr
+                              ( \f
+                                 ( minH,
+                                   acc
+                                   ) -> case Symantic.Parser.Grammar.Combinators.unSomeFailure f of
+                                    GHC.Maybe.Just (Symantic.Parser.Grammar.Combinators.FailureHorizon h :: Symantic.Parser.Grammar.Combinators.Failure (Symantic.Parser.Grammar.Combinators.CombSatisfiable (Symantic.Parser.Machine.Input.InputToken inp)))
+                                      | GHC.Maybe.Just old <- minH ->
+                                        ( GHC.Maybe.Just (GHC.Classes.min old h),
+                                          acc
+                                        )
+                                      | GHC.Base.otherwise ->
+                                        ( GHC.Maybe.Just h,
+                                          acc
+                                        )
+                                    _ ->
+                                      ( minH,
+                                        f GHC.Types.: acc
+                                      )
+                              )
+                              ( GHC.Maybe.Nothing,
+                                GHC.Types . []
+                              )
+                              farExp
+                     in Data.Set.Internal.fromList GHC.Base.$
+                          ( case minHoriz of
+                              GHC.Maybe.Just h -> Symantic.Parser.Grammar.Combinators.SomeFailure (Symantic.Parser.Grammar.Combinators.FailureHorizon @(Symantic.Parser.Machine.Input.InputToken inp) h) GHC.Types.: res
+                              GHC.Maybe.Nothing -> res
+                          )
+                }
+   in GHC.ST.runST
+        ( let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
+           in let inp = init
+               in let readFail = finalRaise
+                   in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=3"
+                       in if readMore (Symantic.Parser.Machine.Input.shiftRightText 2 inp)
+                            then
+                              let
+                               in let _ = "pushValue"
+                                   in let _ = "catch ExceptionFailure checkedHorizon=3"
+                                       in let onException =
+                                                let _ = "onException"
+                                                 in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                      let _ = "loadInput checkedHorizon=3"
+                                                       in let _ = "checkHorizon.oldCheck: checkedHorizon=3"
+                                                           in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                           in let _ = "pushValue"
+                                               in let _ = "comment: satisfy ((GHC.Classes.==) 'a')"
+                                                   in let _ = "checkHorizon.oldCheck: checkedHorizon=3"
+                                                       in let _ = "checkToken"
+                                                           in let !(#
+                                                                     c,
+                                                                     cs
+                                                                     #) = readNext inp
+                                                               in if (GHC.Classes.==) 'a' c
+                                                                    then
+                                                                      let _ = "lift2Value checkedHorizon=2"
+                                                                       in let _ = "comment: satisfy ((GHC.Classes.==) 'b')"
+                                                                           in let _ = "checkHorizon.oldCheck: checkedHorizon=2"
+                                                                               in let _ = "checkToken"
+                                                                                   in let !(#
+                                                                                             c,
+                                                                                             cs
+                                                                                             #) = readNext cs
+                                                                                       in if (GHC.Classes.==) 'b' c
+                                                                                            then
+                                                                                              let _ = "lift2Value checkedHorizon=1"
+                                                                                               in let _ = "comment: satisfy ((GHC.Classes.==) 'c')"
+                                                                                                   in let _ = "checkHorizon.oldCheck: checkedHorizon=1"
+                                                                                                       in let _ = "checkToken"
+                                                                                                           in let !(#
+                                                                                                                     c,
+                                                                                                                     cs
+                                                                                                                     #) = readNext cs
+                                                                                                               in if (GHC.Classes.==) 'c' c
+                                                                                                                    then
+                                                                                                                      let _ = "lift2Value checkedHorizon=0"
+                                                                                                                       in let _ = "commit"
+                                                                                                                           in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                               in let _ = "resume"
+                                                                                                                                   in finalRet
+                                                                                                                                        init
+                                                                                                                                        Data.Set.Internal.empty
+                                                                                                                                        ( let _ = "resume.genCode"
+                                                                                                                                           in GHC.Show.show ((GHC.Types.:) 'a' ((GHC.Types.:) 'b' ((GHC.Types.:) 'c' GHC.Types . [])))
+                                                                                                                                        )
+                                                                                                                                        cs
+                                                                                                                    else
+                                                                                                                      let _ = "checkToken.fail"
+                                                                                                                       in let failExp =
+                                                                                                                                Data.Set.Internal.Bin
+                                                                                                                                  1
+                                                                                                                                  ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                      ( case inputToken of
+                                                                                                                                          (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'c'
+                                                                                                                                      )
+                                                                                                                                  )
+                                                                                                                                  Data.Set.Internal.Tip
+                                                                                                                                  Data.Set.Internal.Tip
+                                                                                                                           in let (#
+                                                                                                                                    farInp,
+                                                                                                                                    farExp
+                                                                                                                                    #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init cs of
+                                                                                                                                      GHC.Types.LT ->
+                                                                                                                                        (#
+                                                                                                                                          cs,
+                                                                                                                                          failExp
+                                                                                                                                        #)
+                                                                                                                                      GHC.Types.EQ ->
+                                                                                                                                        (#
+                                                                                                                                          init,
+                                                                                                                                          failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                                                                        #)
+                                                                                                                                      GHC.Types.GT ->
+                                                                                                                                        (#
+                                                                                                                                          init,
+                                                                                                                                          Data.Set.Internal.empty
+                                                                                                                                        #)
+                                                                                                                               in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                                            else
+                                                                                              let _ = "checkToken.fail"
+                                                                                               in let failExp =
+                                                                                                        Data.Set.Internal.Bin
+                                                                                                          1
+                                                                                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                              ( case inputToken of
+                                                                                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'b'
+                                                                                                              )
+                                                                                                          )
+                                                                                                          Data.Set.Internal.Tip
+                                                                                                          Data.Set.Internal.Tip
+                                                                                                   in let (#
+                                                                                                            farInp,
+                                                                                                            farExp
+                                                                                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init cs of
+                                                                                                              GHC.Types.LT ->
+                                                                                                                (#
+                                                                                                                  cs,
+                                                                                                                  failExp
+                                                                                                                #)
+                                                                                                              GHC.Types.EQ ->
+                                                                                                                (#
+                                                                                                                  init,
+                                                                                                                  failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                                                #)
+                                                                                                              GHC.Types.GT ->
+                                                                                                                (#
+                                                                                                                  init,
+                                                                                                                  Data.Set.Internal.empty
+                                                                                                                #)
+                                                                                                       in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                    else
+                                                                      let _ = "checkToken.fail"
+                                                                       in let failExp =
+                                                                                Data.Set.Internal.Bin
+                                                                                  1
+                                                                                  ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                      ( case inputToken of
+                                                                                          (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
+                                                                                      )
+                                                                                  )
+                                                                                  Data.Set.Internal.Tip
+                                                                                  Data.Set.Internal.Tip
+                                                                           in let (#
+                                                                                    farInp,
+                                                                                    farExp
+                                                                                    #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                      GHC.Types.LT ->
+                                                                                        (#
+                                                                                          inp,
+                                                                                          failExp
+                                                                                        #)
+                                                                                      GHC.Types.EQ ->
+                                                                                        (#
+                                                                                          init,
+                                                                                          failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                        #)
+                                                                                      GHC.Types.GT ->
+                                                                                        (#
+                                                                                          init,
+                                                                                          Data.Set.Internal.empty
+                                                                                        #)
+                                                                               in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                            else
+                              let _ = "checkHorizon.newCheck.fail"
+                               in let failExp =
+                                        Data.Set.Internal.Bin
+                                          1
+                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                              ( case inputToken of
+                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 3
+                                              )
+                                          )
+                                          Data.Set.Internal.Tip
+                                          Data.Set.Internal.Tip
+                                   in let (#
+                                            farInp,
+                                            farExp
+                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                              GHC.Types.LT ->
+                                                (#
+                                                  inp,
+                                                  failExp
+                                                #)
+                                              GHC.Types.EQ ->
+                                                (#
+                                                  init,
+                                                  failExp GHC.Base.<> Data.Set.Internal.empty
+                                                #)
+                                              GHC.Types.GT ->
+                                                (#
+                                                  init,
+                                                  Data.Set.Internal.empty
+                                                #)
+                                       in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+        )
diff --git a/tests/Golden/Splice/G20.expected.txt b/tests/Golden/Splice/G20.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Splice/G20.expected.txt
@@ -0,0 +1,321 @@
+\(input :: inp) ->
+  let !(#
+         init,
+         readMore,
+         readNext
+         #) =
+          let _ = "cursorOf"
+           in let next
+                    ( t@( Data.Text.Internal.Text
+                            arr
+                            off
+                            unconsumed
+                          )
+                      ) =
+                      let !( Data.Text.Unsafe.Iter
+                               c
+                               d
+                             ) = Data.Text.Unsafe.iter t 0
+                       in (#
+                            c,
+                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
+                          #)
+                  more
+                    ( Data.Text.Internal.Text
+                        _
+                        _
+                        unconsumed
+                      ) = unconsumed GHC.Classes.> 0
+               in (# input, more, next #)
+      finalRet = \_farInp _farExp v _inp -> Symantic.Parser.Machine.Generate.returnST GHC.Base.$ Data.Either.Right v
+      finalRaise ::
+        forall st b.
+        Symantic.Parser.Machine.Generate.OnException
+          st
+          inp
+          b = \(!exn) _failInp (!farInp) (!farExp) ->
+          Symantic.Parser.Machine.Generate.returnST GHC.Base.$
+            Data.Either.Left
+              Symantic.Parser.Machine.Generate.ParsingError
+                { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
+                  Symantic.Parser.Machine.Generate.parsingErrorException = exn,
+                  Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
+                    if readMore farInp
+                      then
+                        GHC.Maybe.Just
+                          ( let (#
+                                  c,
+                                  _
+                                  #) = readNext farInp
+                             in c
+                          )
+                      else GHC.Maybe.Nothing,
+                  Symantic.Parser.Machine.Generate.parsingErrorExpecting =
+                    let ( minHoriz,
+                          res
+                          ) =
+                            Data.Set.Internal.foldr
+                              ( \f
+                                 ( minH,
+                                   acc
+                                   ) -> case Symantic.Parser.Grammar.Combinators.unSomeFailure f of
+                                    GHC.Maybe.Just (Symantic.Parser.Grammar.Combinators.FailureHorizon h :: Symantic.Parser.Grammar.Combinators.Failure (Symantic.Parser.Grammar.Combinators.CombSatisfiable (Symantic.Parser.Machine.Input.InputToken inp)))
+                                      | GHC.Maybe.Just old <- minH ->
+                                        ( GHC.Maybe.Just (GHC.Classes.min old h),
+                                          acc
+                                        )
+                                      | GHC.Base.otherwise ->
+                                        ( GHC.Maybe.Just h,
+                                          acc
+                                        )
+                                    _ ->
+                                      ( minH,
+                                        f GHC.Types.: acc
+                                      )
+                              )
+                              ( GHC.Maybe.Nothing,
+                                GHC.Types . []
+                              )
+                              farExp
+                     in Data.Set.Internal.fromList GHC.Base.$
+                          ( case minHoriz of
+                              GHC.Maybe.Just h -> Symantic.Parser.Grammar.Combinators.SomeFailure (Symantic.Parser.Grammar.Combinators.FailureHorizon @(Symantic.Parser.Machine.Input.InputToken inp) h) GHC.Types.: res
+                              GHC.Maybe.Nothing -> res
+                          )
+                }
+   in GHC.ST.runST
+        ( let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
+           in let inp = init
+               in let readFail = finalRaise
+                   in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=3"
+                       in if readMore (Symantic.Parser.Machine.Input.shiftRightText 2 inp)
+                            then
+                              let
+                               in let _ = "pushValue"
+                                   in let join = \farInp farExp v (!inp) ->
+                                            let _ = "lift2Value checkedHorizon=0"
+                                             in let _ = "catch ExceptionFailure checkedHorizon=0"
+                                                 in let onException =
+                                                          let _ = "onException"
+                                                           in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                let _ = "loadInput checkedHorizon=0"
+                                                                 in let _ = "checkHorizon.noCheck"
+                                                                     in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                     in let _ = "pushValue"
+                                                         in let _ = "comment: satisfy ((GHC.Classes.==) 'd')"
+                                                             in let inp = inp
+                                                                 in let readFail = onException
+                                                                     in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=3"
+                                                                         in if readMore (Symantic.Parser.Machine.Input.shiftRightText 2 inp)
+                                                                              then
+                                                                                let _ = "checkToken"
+                                                                                 in let !(#
+                                                                                           c,
+                                                                                           cs
+                                                                                           #) = readNext inp
+                                                                                     in if (GHC.Classes.==) 'd' c
+                                                                                          then
+                                                                                            let _ = "lift2Value checkedHorizon=3"
+                                                                                             in let _ = "comment: satisfy ((GHC.Classes.==) 'e')"
+                                                                                                 in let _ = "checkHorizon.oldCheck: checkedHorizon=3"
+                                                                                                     in let _ = "checkToken"
+                                                                                                         in let !(#
+                                                                                                                   c,
+                                                                                                                   cs
+                                                                                                                   #) = readNext cs
+                                                                                                             in if (GHC.Classes.==) 'e' c
+                                                                                                                  then
+                                                                                                                    let _ = "lift2Value checkedHorizon=2"
+                                                                                                                     in let _ = "comment: satisfy ((GHC.Classes.==) 'f')"
+                                                                                                                         in let _ = "checkHorizon.oldCheck: checkedHorizon=2"
+                                                                                                                             in let _ = "checkToken"
+                                                                                                                                 in let !(#
+                                                                                                                                           c,
+                                                                                                                                           cs
+                                                                                                                                           #) = readNext cs
+                                                                                                                                     in if (GHC.Classes.==) 'f' c
+                                                                                                                                          then
+                                                                                                                                            let _ = "lift2Value checkedHorizon=1"
+                                                                                                                                             in let _ = "commit"
+                                                                                                                                                 in let _ = "lift2Value checkedHorizon=1"
+                                                                                                                                                     in let _ = "resume"
+                                                                                                                                                         in finalRet
+                                                                                                                                                              farInp
+                                                                                                                                                              farExp
+                                                                                                                                                              ( let _ = "resume.genCode"
+                                                                                                                                                                 in GHC.Show.show GHC.Tuple . ()
+                                                                                                                                                              )
+                                                                                                                                                              cs
+                                                                                                                                          else
+                                                                                                                                            let _ = "checkToken.fail"
+                                                                                                                                             in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                                                                  else
+                                                                                                                    let _ = "checkToken.fail"
+                                                                                                                     in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                                          else
+                                                                                            let _ = "checkToken.fail"
+                                                                                             in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                              else
+                                                                                let _ = "checkHorizon.newCheck.fail"
+                                                                                 in let failExp =
+                                                                                          Data.Set.Internal.Bin
+                                                                                            1
+                                                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                ( case inputToken of
+                                                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 3
+                                                                                                )
+                                                                                            )
+                                                                                            Data.Set.Internal.Tip
+                                                                                            Data.Set.Internal.Tip
+                                                                                     in let (#
+                                                                                              farInp,
+                                                                                              farExp
+                                                                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                GHC.Types.LT ->
+                                                                                                  (#
+                                                                                                    inp,
+                                                                                                    failExp
+                                                                                                  #)
+                                                                                                GHC.Types.EQ ->
+                                                                                                  (#
+                                                                                                    farInp,
+                                                                                                    failExp GHC.Base.<> farExp
+                                                                                                  #)
+                                                                                                GHC.Types.GT ->
+                                                                                                  (#
+                                                                                                    farInp,
+                                                                                                    farExp
+                                                                                                  #)
+                                                                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                       in let _ = "catch ExceptionFailure checkedHorizon=3"
+                                           in let onException =
+                                                    let _ = "onException"
+                                                     in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                          let _ = "comment: raiseAgainIfConsumed"
+                                                           in let _ = "saveInput checkedHorizon=0"
+                                                               in let _ = "lift2Value checkedHorizon=0"
+                                                                   in if ( \( Data.Text.Internal.Text
+                                                                                _
+                                                                                i
+                                                                                _
+                                                                              )
+                                                                            ( Data.Text.Internal.Text
+                                                                                _
+                                                                                j
+                                                                                _
+                                                                              ) -> i GHC.Classes.== j
+                                                                         )
+                                                                        inp
+                                                                        failInp
+                                                                        then
+                                                                          let _ = "choicesBranch checkedHorizon=0"
+                                                                           in let _ = "catch ExceptionFailure checkedHorizon=0"
+                                                                               in let onException =
+                                                                                        let _ = "onException"
+                                                                                         in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                              let _ = "loadInput checkedHorizon=0"
+                                                                                               in let _ = "checkHorizon.noCheck"
+                                                                                                   in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                   in let _ = "pushValue"
+                                                                                       in let _ = "commit"
+                                                                                           in let _ = "resume"
+                                                                                               in join
+                                                                                                    farInp
+                                                                                                    farExp
+                                                                                                    ( let _ = "resume.genCode"
+                                                                                                       in GHC.Types . []
+                                                                                                    )
+                                                                                                    failInp
+                                                                        else
+                                                                          let _ = "choicesBranch.else"
+                                                                           in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                               in let _ = "catch ExceptionFailure checkedHorizon=3"
+                                                   in let onException =
+                                                            let _ = "onException"
+                                                             in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                  let _ = "loadInput checkedHorizon=3"
+                                                                   in let _ = "checkHorizon.oldCheck: checkedHorizon=3"
+                                                                       in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                       in let _ = "pushValue"
+                                                           in let _ = "comment: satisfy ((GHC.Classes.==) 'a')"
+                                                               in let _ = "checkHorizon.oldCheck: checkedHorizon=3"
+                                                                   in let _ = "checkToken"
+                                                                       in let !(#
+                                                                                 c,
+                                                                                 cs
+                                                                                 #) = readNext inp
+                                                                           in if (GHC.Classes.==) 'a' c
+                                                                                then
+                                                                                  let _ = "lift2Value checkedHorizon=2"
+                                                                                   in let _ = "comment: satisfy ((GHC.Classes.==) 'b')"
+                                                                                       in let _ = "checkHorizon.oldCheck: checkedHorizon=2"
+                                                                                           in let _ = "checkToken"
+                                                                                               in let !(#
+                                                                                                         c,
+                                                                                                         cs
+                                                                                                         #) = readNext cs
+                                                                                                   in if (GHC.Classes.==) 'b' c
+                                                                                                        then
+                                                                                                          let _ = "lift2Value checkedHorizon=1"
+                                                                                                           in let _ = "comment: satisfy ((GHC.Classes.==) 'c')"
+                                                                                                               in let _ = "checkHorizon.oldCheck: checkedHorizon=1"
+                                                                                                                   in let _ = "checkToken"
+                                                                                                                       in let !(#
+                                                                                                                                 c,
+                                                                                                                                 cs
+                                                                                                                                 #) = readNext cs
+                                                                                                                           in if (GHC.Classes.==) 'c' c
+                                                                                                                                then
+                                                                                                                                  let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                   in let _ = "commit"
+                                                                                                                                       in let _ = "commit"
+                                                                                                                                           in let _ = "resume"
+                                                                                                                                               in join
+                                                                                                                                                    init
+                                                                                                                                                    Data.Set.Internal.empty
+                                                                                                                                                    ( let _ = "resume.genCode"
+                                                                                                                                                       in (GHC.Types.:) 'a' ((GHC.Types.:) 'b' ((GHC.Types.:) 'c' GHC.Types . []))
+                                                                                                                                                    )
+                                                                                                                                                    cs
+                                                                                                                                else
+                                                                                                                                  let _ = "checkToken.fail"
+                                                                                                                                   in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure cs init Data.Set.Internal.empty
+                                                                                                        else
+                                                                                                          let _ = "checkToken.fail"
+                                                                                                           in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure cs init Data.Set.Internal.empty
+                                                                                else
+                                                                                  let _ = "checkToken.fail"
+                                                                                   in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure inp init Data.Set.Internal.empty
+                            else
+                              let _ = "checkHorizon.newCheck.fail"
+                               in let failExp =
+                                        Data.Set.Internal.Bin
+                                          1
+                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                              ( case inputToken of
+                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 3
+                                              )
+                                          )
+                                          Data.Set.Internal.Tip
+                                          Data.Set.Internal.Tip
+                                   in let (#
+                                            farInp,
+                                            farExp
+                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                              GHC.Types.LT ->
+                                                (#
+                                                  inp,
+                                                  failExp
+                                                #)
+                                              GHC.Types.EQ ->
+                                                (#
+                                                  init,
+                                                  failExp GHC.Base.<> Data.Set.Internal.empty
+                                                #)
+                                              GHC.Types.GT ->
+                                                (#
+                                                  init,
+                                                  Data.Set.Internal.empty
+                                                #)
+                                       in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+        )
diff --git a/tests/Golden/Splice/G3.expected.txt b/tests/Golden/Splice/G3.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Splice/G3.expected.txt
@@ -0,0 +1,225 @@
+\(input :: inp) ->
+  let !(#
+         init,
+         readMore,
+         readNext
+         #) =
+          let _ = "cursorOf"
+           in let next
+                    ( t@( Data.Text.Internal.Text
+                            arr
+                            off
+                            unconsumed
+                          )
+                      ) =
+                      let !( Data.Text.Unsafe.Iter
+                               c
+                               d
+                             ) = Data.Text.Unsafe.iter t 0
+                       in (#
+                            c,
+                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
+                          #)
+                  more
+                    ( Data.Text.Internal.Text
+                        _
+                        _
+                        unconsumed
+                      ) = unconsumed GHC.Classes.> 0
+               in (# input, more, next #)
+      finalRet = \_farInp _farExp v _inp -> Symantic.Parser.Machine.Generate.returnST GHC.Base.$ Data.Either.Right v
+      finalRaise ::
+        forall st b.
+        Symantic.Parser.Machine.Generate.OnException
+          st
+          inp
+          b = \(!exn) _failInp (!farInp) (!farExp) ->
+          Symantic.Parser.Machine.Generate.returnST GHC.Base.$
+            Data.Either.Left
+              Symantic.Parser.Machine.Generate.ParsingError
+                { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
+                  Symantic.Parser.Machine.Generate.parsingErrorException = exn,
+                  Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
+                    if readMore farInp
+                      then
+                        GHC.Maybe.Just
+                          ( let (#
+                                  c,
+                                  _
+                                  #) = readNext farInp
+                             in c
+                          )
+                      else GHC.Maybe.Nothing,
+                  Symantic.Parser.Machine.Generate.parsingErrorExpecting =
+                    let ( minHoriz,
+                          res
+                          ) =
+                            Data.Set.Internal.foldr
+                              ( \f
+                                 ( minH,
+                                   acc
+                                   ) -> case Symantic.Parser.Grammar.Combinators.unSomeFailure f of
+                                    GHC.Maybe.Just (Symantic.Parser.Grammar.Combinators.FailureHorizon h :: Symantic.Parser.Grammar.Combinators.Failure (Symantic.Parser.Grammar.Combinators.CombSatisfiable (Symantic.Parser.Machine.Input.InputToken inp)))
+                                      | GHC.Maybe.Just old <- minH ->
+                                        ( GHC.Maybe.Just (GHC.Classes.min old h),
+                                          acc
+                                        )
+                                      | GHC.Base.otherwise ->
+                                        ( GHC.Maybe.Just h,
+                                          acc
+                                        )
+                                    _ ->
+                                      ( minH,
+                                        f GHC.Types.: acc
+                                      )
+                              )
+                              ( GHC.Maybe.Nothing,
+                                GHC.Types . []
+                              )
+                              farExp
+                     in Data.Set.Internal.fromList GHC.Base.$
+                          ( case minHoriz of
+                              GHC.Maybe.Just h -> Symantic.Parser.Grammar.Combinators.SomeFailure (Symantic.Parser.Grammar.Combinators.FailureHorizon @(Symantic.Parser.Machine.Input.InputToken inp) h) GHC.Types.: res
+                              GHC.Maybe.Nothing -> res
+                          )
+                }
+   in GHC.ST.runST
+        ( let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
+           in let _ = "checkHorizon.noCheck"
+               in let
+                   in let _ = "pushValue"
+                       in let _ = "pushValue"
+                           in do
+                                let dupv = \x -> x
+                                reg <- GHC.STRef.newSTRef dupv
+                                let _ = "iter"
+                                 in let onException loopInput =
+                                          let _ = "onException"
+                                           in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                let _ = "comment: raiseAgainIfConsumed"
+                                                 in let _ = "saveInput checkedHorizon=0"
+                                                     in let _ = "lift2Value checkedHorizon=0"
+                                                         in if ( \( Data.Text.Internal.Text
+                                                                      _
+                                                                      i
+                                                                      _
+                                                                    )
+                                                                  ( Data.Text.Internal.Text
+                                                                      _
+                                                                      j
+                                                                      _
+                                                                    ) -> i GHC.Classes.== j
+                                                               )
+                                                              loopInput
+                                                              failInp
+                                                              then
+                                                                let _ = "choicesBranch checkedHorizon=0"
+                                                                 in do
+                                                                      sr <- GHC.STRef.readSTRef reg
+                                                                      let _ = "pushValue"
+                                                                       in let _ = "lift2Value checkedHorizon=0"
+                                                                           in let _ = "lift2Value checkedHorizon=0"
+                                                                               in let _ = "resume"
+                                                                                   in finalRet
+                                                                                        farInp
+                                                                                        farExp
+                                                                                        ( let _ = "resume.genCode"
+                                                                                           in GHC.Show.show (sr GHC.Types . [])
+                                                                                        )
+                                                                                        failInp
+                                                              else
+                                                                let _ = "choicesBranch.else"
+                                                                 in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                        loop = \_callerOnReturn callerInput callerOnExceptionStackByLabel ->
+                                          let _ = "pushValue"
+                                           in let _ = "comment: satisfy ((GHC.Classes.==) 'a')"
+                                               in let inp = callerInput
+                                                   in let readFail = onException callerInput
+                                                       in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=1"
+                                                           in if readMore inp
+                                                                then
+                                                                  let _ = "checkToken"
+                                                                   in let !(#
+                                                                             c,
+                                                                             cs
+                                                                             #) = readNext inp
+                                                                       in if (GHC.Classes.==) 'a' c
+                                                                            then
+                                                                              let _ = "lift2Value checkedHorizon=1"
+                                                                               in let _ = "pushValue"
+                                                                                   in let _ = "lift2Value checkedHorizon=1"
+                                                                                       in do
+                                                                                            sr <- GHC.STRef.readSTRef reg
+                                                                                            let _ = "lift2Value checkedHorizon=1"
+                                                                                             in do
+                                                                                                  let dupv = \x -> sr ((GHC.Types.:) 'a' x)
+                                                                                                  GHC.STRef.writeSTRef reg dupv
+                                                                                                  let _ = "jump"
+                                                                                                   in loop (GHC.Err.error "invalid onReturn") cs (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                            else
+                                                                              let _ = "checkToken.fail"
+                                                                               in let failExp =
+                                                                                        Data.Set.Internal.Bin
+                                                                                          1
+                                                                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                              ( case inputToken of
+                                                                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
+                                                                                              )
+                                                                                          )
+                                                                                          Data.Set.Internal.Tip
+                                                                                          Data.Set.Internal.Tip
+                                                                                   in let (#
+                                                                                            farInp,
+                                                                                            farExp
+                                                                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                              GHC.Types.LT ->
+                                                                                                (#
+                                                                                                  inp,
+                                                                                                  failExp
+                                                                                                #)
+                                                                                              GHC.Types.EQ ->
+                                                                                                (#
+                                                                                                  init,
+                                                                                                  failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                                #)
+                                                                                              GHC.Types.GT ->
+                                                                                                (#
+                                                                                                  init,
+                                                                                                  Data.Set.Internal.empty
+                                                                                                #)
+                                                                                       in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                else
+                                                                  let _ = "checkHorizon.newCheck.fail"
+                                                                   in let failExp =
+                                                                            Data.Set.Internal.Bin
+                                                                              1
+                                                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                  ( case inputToken of
+                                                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
+                                                                                  )
+                                                                              )
+                                                                              Data.Set.Internal.Tip
+                                                                              Data.Set.Internal.Tip
+                                                                       in let (#
+                                                                                farInp,
+                                                                                farExp
+                                                                                #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                  GHC.Types.LT ->
+                                                                                    (#
+                                                                                      inp,
+                                                                                      failExp
+                                                                                    #)
+                                                                                  GHC.Types.EQ ->
+                                                                                    (#
+                                                                                      init,
+                                                                                      failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                    #)
+                                                                                  GHC.Types.GT ->
+                                                                                    (#
+                                                                                      init,
+                                                                                      Data.Set.Internal.empty
+                                                                                    #)
+                                                                           in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                     in let _ = "jump"
+                                         in loop finalRet init Data.Map.Internal.Tip
+        )
diff --git a/tests/Golden/Splice/G4.expected.txt b/tests/Golden/Splice/G4.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Splice/G4.expected.txt
@@ -0,0 +1,418 @@
+\(input :: inp) ->
+  let !(#
+         init,
+         readMore,
+         readNext
+         #) =
+          let _ = "cursorOf"
+           in let next
+                    ( t@( Data.Text.Internal.Text
+                            arr
+                            off
+                            unconsumed
+                          )
+                      ) =
+                      let !( Data.Text.Unsafe.Iter
+                               c
+                               d
+                             ) = Data.Text.Unsafe.iter t 0
+                       in (#
+                            c,
+                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
+                          #)
+                  more
+                    ( Data.Text.Internal.Text
+                        _
+                        _
+                        unconsumed
+                      ) = unconsumed GHC.Classes.> 0
+               in (# input, more, next #)
+      finalRet = \_farInp _farExp v _inp -> Symantic.Parser.Machine.Generate.returnST GHC.Base.$ Data.Either.Right v
+      finalRaise ::
+        forall st b.
+        Symantic.Parser.Machine.Generate.OnException
+          st
+          inp
+          b = \(!exn) _failInp (!farInp) (!farExp) ->
+          Symantic.Parser.Machine.Generate.returnST GHC.Base.$
+            Data.Either.Left
+              Symantic.Parser.Machine.Generate.ParsingError
+                { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
+                  Symantic.Parser.Machine.Generate.parsingErrorException = exn,
+                  Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
+                    if readMore farInp
+                      then
+                        GHC.Maybe.Just
+                          ( let (#
+                                  c,
+                                  _
+                                  #) = readNext farInp
+                             in c
+                          )
+                      else GHC.Maybe.Nothing,
+                  Symantic.Parser.Machine.Generate.parsingErrorExpecting =
+                    let ( minHoriz,
+                          res
+                          ) =
+                            Data.Set.Internal.foldr
+                              ( \f
+                                 ( minH,
+                                   acc
+                                   ) -> case Symantic.Parser.Grammar.Combinators.unSomeFailure f of
+                                    GHC.Maybe.Just (Symantic.Parser.Grammar.Combinators.FailureHorizon h :: Symantic.Parser.Grammar.Combinators.Failure (Symantic.Parser.Grammar.Combinators.CombSatisfiable (Symantic.Parser.Machine.Input.InputToken inp)))
+                                      | GHC.Maybe.Just old <- minH ->
+                                        ( GHC.Maybe.Just (GHC.Classes.min old h),
+                                          acc
+                                        )
+                                      | GHC.Base.otherwise ->
+                                        ( GHC.Maybe.Just h,
+                                          acc
+                                        )
+                                    _ ->
+                                      ( minH,
+                                        f GHC.Types.: acc
+                                      )
+                              )
+                              ( GHC.Maybe.Nothing,
+                                GHC.Types . []
+                              )
+                              farExp
+                     in Data.Set.Internal.fromList GHC.Base.$
+                          ( case minHoriz of
+                              GHC.Maybe.Just h -> Symantic.Parser.Grammar.Combinators.SomeFailure (Symantic.Parser.Grammar.Combinators.FailureHorizon @(Symantic.Parser.Machine.Input.InputToken inp) h) GHC.Types.: res
+                              GHC.Maybe.Nothing -> res
+                          )
+                }
+   in GHC.ST.runST
+        ( let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
+           in let inp = init
+               in let readFail = finalRaise
+                   in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=4"
+                       in if readMore (Symantic.Parser.Machine.Input.shiftRightText 3 inp)
+                            then
+                              let name = \(!callerOnReturn) (!callerInput) (!callerOnExceptionStackByLabel) ->
+                                    let _ = "catch ExceptionFailure checkedHorizon=0"
+                                     in let onException =
+                                              let _ = "onException"
+                                               in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                    let _ = "loadInput checkedHorizon=0"
+                                                     in let _ = "checkHorizon.noCheck"
+                                                         in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure callerOnExceptionStackByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure callerInput farInp farExp
+                                         in let _ = "pushValue"
+                                             in let _ = "comment: satisfy ((GHC.Classes.==) 'a')"
+                                                 in let inp = callerInput
+                                                     in let readFail = onException
+                                                         in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=4"
+                                                             in if readMore (Symantic.Parser.Machine.Input.shiftRightText 3 inp)
+                                                                  then
+                                                                    let _ = "checkToken"
+                                                                     in let !(#
+                                                                               c,
+                                                                               cs
+                                                                               #) = readNext inp
+                                                                         in if (GHC.Classes.==) 'a' c
+                                                                              then
+                                                                                let _ = "lift2Value checkedHorizon=4"
+                                                                                 in let _ = "comment: satisfy ((GHC.Classes.==) 'b')"
+                                                                                     in let _ = "checkHorizon.oldCheck: checkedHorizon=4"
+                                                                                         in let _ = "checkToken"
+                                                                                             in let !(#
+                                                                                                       c,
+                                                                                                       cs
+                                                                                                       #) = readNext cs
+                                                                                                 in if (GHC.Classes.==) 'b' c
+                                                                                                      then
+                                                                                                        let _ = "lift2Value checkedHorizon=3"
+                                                                                                         in let _ = "comment: satisfy ((GHC.Classes.==) 'c')"
+                                                                                                             in let _ = "checkHorizon.oldCheck: checkedHorizon=3"
+                                                                                                                 in let _ = "checkToken"
+                                                                                                                     in let !(#
+                                                                                                                               c,
+                                                                                                                               cs
+                                                                                                                               #) = readNext cs
+                                                                                                                         in if (GHC.Classes.==) 'c' c
+                                                                                                                              then
+                                                                                                                                let _ = "lift2Value checkedHorizon=2"
+                                                                                                                                 in let _ = "comment: satisfy ((GHC.Classes.==) 'd')"
+                                                                                                                                     in let _ = "checkHorizon.oldCheck: checkedHorizon=2"
+                                                                                                                                         in let _ = "checkToken"
+                                                                                                                                             in let !(#
+                                                                                                                                                       c,
+                                                                                                                                                       cs
+                                                                                                                                                       #) = readNext cs
+                                                                                                                                                 in if (GHC.Classes.==) 'd' c
+                                                                                                                                                      then
+                                                                                                                                                        let _ = "lift2Value checkedHorizon=1"
+                                                                                                                                                         in let _ = "commit"
+                                                                                                                                                             in let _ = "resume"
+                                                                                                                                                                 in callerOnReturn
+                                                                                                                                                                      init
+                                                                                                                                                                      Data.Set.Internal.empty
+                                                                                                                                                                      ( let _ = "resume.genCode"
+                                                                                                                                                                         in (GHC.Types.:) 'a' ((GHC.Types.:) 'b' ((GHC.Types.:) 'c' ((GHC.Types.:) 'd' GHC.Types . [])))
+                                                                                                                                                                      )
+                                                                                                                                                                      cs
+                                                                                                                                                      else
+                                                                                                                                                        let _ = "checkToken.fail"
+                                                                                                                                                         in let failExp =
+                                                                                                                                                                  Data.Set.Internal.Bin
+                                                                                                                                                                    1
+                                                                                                                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                        ( case inputToken of
+                                                                                                                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'd'
+                                                                                                                                                                        )
+                                                                                                                                                                    )
+                                                                                                                                                                    Data.Set.Internal.Tip
+                                                                                                                                                                    Data.Set.Internal.Tip
+                                                                                                                                                             in let (#
+                                                                                                                                                                      farInp,
+                                                                                                                                                                      farExp
+                                                                                                                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init cs of
+                                                                                                                                                                        GHC.Types.LT ->
+                                                                                                                                                                          (#
+                                                                                                                                                                            cs,
+                                                                                                                                                                            failExp
+                                                                                                                                                                          #)
+                                                                                                                                                                        GHC.Types.EQ ->
+                                                                                                                                                                          (#
+                                                                                                                                                                            init,
+                                                                                                                                                                            failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                                                                                                          #)
+                                                                                                                                                                        GHC.Types.GT ->
+                                                                                                                                                                          (#
+                                                                                                                                                                            init,
+                                                                                                                                                                            Data.Set.Internal.empty
+                                                                                                                                                                          #)
+                                                                                                                                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                                                                              else
+                                                                                                                                let _ = "checkToken.fail"
+                                                                                                                                 in let failExp =
+                                                                                                                                          Data.Set.Internal.Bin
+                                                                                                                                            1
+                                                                                                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                ( case inputToken of
+                                                                                                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'c'
+                                                                                                                                                )
+                                                                                                                                            )
+                                                                                                                                            Data.Set.Internal.Tip
+                                                                                                                                            Data.Set.Internal.Tip
+                                                                                                                                     in let (#
+                                                                                                                                              farInp,
+                                                                                                                                              farExp
+                                                                                                                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init cs of
+                                                                                                                                                GHC.Types.LT ->
+                                                                                                                                                  (#
+                                                                                                                                                    cs,
+                                                                                                                                                    failExp
+                                                                                                                                                  #)
+                                                                                                                                                GHC.Types.EQ ->
+                                                                                                                                                  (#
+                                                                                                                                                    init,
+                                                                                                                                                    failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                                                                                  #)
+                                                                                                                                                GHC.Types.GT ->
+                                                                                                                                                  (#
+                                                                                                                                                    init,
+                                                                                                                                                    Data.Set.Internal.empty
+                                                                                                                                                  #)
+                                                                                                                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                                                      else
+                                                                                                        let _ = "checkToken.fail"
+                                                                                                         in let failExp =
+                                                                                                                  Data.Set.Internal.Bin
+                                                                                                                    1
+                                                                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                        ( case inputToken of
+                                                                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'b'
+                                                                                                                        )
+                                                                                                                    )
+                                                                                                                    Data.Set.Internal.Tip
+                                                                                                                    Data.Set.Internal.Tip
+                                                                                                             in let (#
+                                                                                                                      farInp,
+                                                                                                                      farExp
+                                                                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init cs of
+                                                                                                                        GHC.Types.LT ->
+                                                                                                                          (#
+                                                                                                                            cs,
+                                                                                                                            failExp
+                                                                                                                          #)
+                                                                                                                        GHC.Types.EQ ->
+                                                                                                                          (#
+                                                                                                                            init,
+                                                                                                                            failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                                                          #)
+                                                                                                                        GHC.Types.GT ->
+                                                                                                                          (#
+                                                                                                                            init,
+                                                                                                                            Data.Set.Internal.empty
+                                                                                                                          #)
+                                                                                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                              else
+                                                                                let _ = "checkToken.fail"
+                                                                                 in let failExp =
+                                                                                          Data.Set.Internal.Bin
+                                                                                            1
+                                                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                ( case inputToken of
+                                                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
+                                                                                                )
+                                                                                            )
+                                                                                            Data.Set.Internal.Tip
+                                                                                            Data.Set.Internal.Tip
+                                                                                     in let (#
+                                                                                              farInp,
+                                                                                              farExp
+                                                                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                                GHC.Types.LT ->
+                                                                                                  (#
+                                                                                                    inp,
+                                                                                                    failExp
+                                                                                                  #)
+                                                                                                GHC.Types.EQ ->
+                                                                                                  (#
+                                                                                                    init,
+                                                                                                    failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                                  #)
+                                                                                                GHC.Types.GT ->
+                                                                                                  (#
+                                                                                                    init,
+                                                                                                    Data.Set.Internal.empty
+                                                                                                  #)
+                                                                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                  else
+                                                                    let _ = "checkHorizon.newCheck.fail"
+                                                                     in let failExp =
+                                                                              Data.Set.Internal.Bin
+                                                                                1
+                                                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                    ( case inputToken of
+                                                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 4
+                                                                                    )
+                                                                                )
+                                                                                Data.Set.Internal.Tip
+                                                                                Data.Set.Internal.Tip
+                                                                         in let (#
+                                                                                  farInp,
+                                                                                  farExp
+                                                                                  #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                    GHC.Types.LT ->
+                                                                                      (#
+                                                                                        inp,
+                                                                                        failExp
+                                                                                      #)
+                                                                                    GHC.Types.EQ ->
+                                                                                      (#
+                                                                                        init,
+                                                                                        failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                      #)
+                                                                                    GHC.Types.GT ->
+                                                                                      (#
+                                                                                        init,
+                                                                                        Data.Set.Internal.empty
+                                                                                      #)
+                                                                             in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                               in let _ = "pushValue"
+                                   in name
+                                        ( let _ = "onReturn"
+                                           in \farInp farExp v (!inp) ->
+                                                let _ = "lift2Value checkedHorizon=0"
+                                                 in let _ = "pushValue"
+                                                     in do
+                                                          let dupv = \x -> x
+                                                          reg <- GHC.STRef.newSTRef dupv
+                                                          let _ = "iter"
+                                                           in let onException loopInput =
+                                                                    let _ = "onException"
+                                                                     in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                          let _ = "comment: raiseAgainIfConsumed"
+                                                                           in let _ = "saveInput checkedHorizon=0"
+                                                                               in let _ = "lift2Value checkedHorizon=0"
+                                                                                   in if ( \( Data.Text.Internal.Text
+                                                                                                _
+                                                                                                i
+                                                                                                _
+                                                                                              )
+                                                                                            ( Data.Text.Internal.Text
+                                                                                                _
+                                                                                                j
+                                                                                                _
+                                                                                              ) -> i GHC.Classes.== j
+                                                                                         )
+                                                                                        loopInput
+                                                                                        failInp
+                                                                                        then
+                                                                                          let _ = "choicesBranch checkedHorizon=0"
+                                                                                           in do
+                                                                                                sr <- GHC.STRef.readSTRef reg
+                                                                                                let _ = "pushValue"
+                                                                                                 in let _ = "lift2Value checkedHorizon=0"
+                                                                                                     in let _ = "lift2Value checkedHorizon=0"
+                                                                                                         in let _ = "resume"
+                                                                                                             in finalRet
+                                                                                                                  farInp
+                                                                                                                  farExp
+                                                                                                                  ( let _ = "resume.genCode"
+                                                                                                                     in GHC.Show.show ((GHC.Types.:) v (sr GHC.Types . []))
+                                                                                                                  )
+                                                                                                                  failInp
+                                                                                        else
+                                                                                          let _ = "choicesBranch.else"
+                                                                                           in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                  loop = \_callerOnReturn callerInput callerOnExceptionStackByLabel ->
+                                                                    let _ = "pushValue"
+                                                                     in name
+                                                                          ( let _ = "onReturn"
+                                                                             in \farInp farExp v (!inp) ->
+                                                                                  let _ = "lift2Value checkedHorizon=0"
+                                                                                   in let _ = "pushValue"
+                                                                                       in let _ = "lift2Value checkedHorizon=0"
+                                                                                           in do
+                                                                                                sr <- GHC.STRef.readSTRef reg
+                                                                                                let _ = "lift2Value checkedHorizon=0"
+                                                                                                 in do
+                                                                                                      let dupv = \x -> sr ((GHC.Types.:) v x)
+                                                                                                      GHC.STRef.writeSTRef reg dupv
+                                                                                                      let _ = "jump"
+                                                                                                       in loop (GHC.Err.error "invalid onReturn") inp (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (onException callerInput) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                          )
+                                                                          callerInput
+                                                                          (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (onException callerInput) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                               in let _ = "jump"
+                                                                   in loop finalRet inp Data.Map.Internal.Tip
+                                        )
+                                        inp
+                                        Data.Map.Internal.Tip
+                            else
+                              let _ = "checkHorizon.newCheck.fail"
+                               in let failExp =
+                                        Data.Set.Internal.Bin
+                                          1
+                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                              ( case inputToken of
+                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 4
+                                              )
+                                          )
+                                          Data.Set.Internal.Tip
+                                          Data.Set.Internal.Tip
+                                   in let (#
+                                            farInp,
+                                            farExp
+                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                              GHC.Types.LT ->
+                                                (#
+                                                  inp,
+                                                  failExp
+                                                #)
+                                              GHC.Types.EQ ->
+                                                (#
+                                                  init,
+                                                  failExp GHC.Base.<> Data.Set.Internal.empty
+                                                #)
+                                              GHC.Types.GT ->
+                                                (#
+                                                  init,
+                                                  Data.Set.Internal.empty
+                                                #)
+                                       in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+        )
diff --git a/tests/Golden/Splice/G5.expected.txt b/tests/Golden/Splice/G5.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Splice/G5.expected.txt
@@ -0,0 +1,535 @@
+\(input :: inp) ->
+  let !(#
+         init,
+         readMore,
+         readNext
+         #) =
+          let _ = "cursorOf"
+           in let next
+                    ( t@( Data.Text.Internal.Text
+                            arr
+                            off
+                            unconsumed
+                          )
+                      ) =
+                      let !( Data.Text.Unsafe.Iter
+                               c
+                               d
+                             ) = Data.Text.Unsafe.iter t 0
+                       in (#
+                            c,
+                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
+                          #)
+                  more
+                    ( Data.Text.Internal.Text
+                        _
+                        _
+                        unconsumed
+                      ) = unconsumed GHC.Classes.> 0
+               in (# input, more, next #)
+      finalRet = \_farInp _farExp v _inp -> Symantic.Parser.Machine.Generate.returnST GHC.Base.$ Data.Either.Right v
+      finalRaise ::
+        forall st b.
+        Symantic.Parser.Machine.Generate.OnException
+          st
+          inp
+          b = \(!exn) _failInp (!farInp) (!farExp) ->
+          Symantic.Parser.Machine.Generate.returnST GHC.Base.$
+            Data.Either.Left
+              Symantic.Parser.Machine.Generate.ParsingError
+                { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
+                  Symantic.Parser.Machine.Generate.parsingErrorException = exn,
+                  Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
+                    if readMore farInp
+                      then
+                        GHC.Maybe.Just
+                          ( let (#
+                                  c,
+                                  _
+                                  #) = readNext farInp
+                             in c
+                          )
+                      else GHC.Maybe.Nothing,
+                  Symantic.Parser.Machine.Generate.parsingErrorExpecting =
+                    let ( minHoriz,
+                          res
+                          ) =
+                            Data.Set.Internal.foldr
+                              ( \f
+                                 ( minH,
+                                   acc
+                                   ) -> case Symantic.Parser.Grammar.Combinators.unSomeFailure f of
+                                    GHC.Maybe.Just (Symantic.Parser.Grammar.Combinators.FailureHorizon h :: Symantic.Parser.Grammar.Combinators.Failure (Symantic.Parser.Grammar.Combinators.CombSatisfiable (Symantic.Parser.Machine.Input.InputToken inp)))
+                                      | GHC.Maybe.Just old <- minH ->
+                                        ( GHC.Maybe.Just (GHC.Classes.min old h),
+                                          acc
+                                        )
+                                      | GHC.Base.otherwise ->
+                                        ( GHC.Maybe.Just h,
+                                          acc
+                                        )
+                                    _ ->
+                                      ( minH,
+                                        f GHC.Types.: acc
+                                      )
+                              )
+                              ( GHC.Maybe.Nothing,
+                                GHC.Types . []
+                              )
+                              farExp
+                     in Data.Set.Internal.fromList GHC.Base.$
+                          ( case minHoriz of
+                              GHC.Maybe.Just h -> Symantic.Parser.Grammar.Combinators.SomeFailure (Symantic.Parser.Grammar.Combinators.FailureHorizon @(Symantic.Parser.Machine.Input.InputToken inp) h) GHC.Types.: res
+                              GHC.Maybe.Nothing -> res
+                          )
+                }
+   in GHC.ST.runST
+        ( let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
+           in let inp = init
+               in let readFail = finalRaise
+                   in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=4"
+                       in if readMore (Symantic.Parser.Machine.Input.shiftRightText 3 inp)
+                            then
+                              let name = \(!callerOnReturn) (!callerInput) (!callerOnExceptionStackByLabel) ->
+                                    let _ = "catch ExceptionFailure checkedHorizon=0"
+                                     in let onException =
+                                              let _ = "onException"
+                                               in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                    let _ = "loadInput checkedHorizon=0"
+                                                     in let _ = "checkHorizon.noCheck"
+                                                         in Data.Map.Strict.Internal.findWithDefault finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure callerOnExceptionStackByLabel Symantic.Parser.Grammar.Combinators.ExceptionFailure callerInput farInp farExp
+                                         in let _ = "pushValue"
+                                             in let _ = "comment: satisfy ((GHC.Classes.==) 'a')"
+                                                 in let inp = callerInput
+                                                     in let readFail = onException
+                                                         in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=4"
+                                                             in if readMore (Symantic.Parser.Machine.Input.shiftRightText 3 inp)
+                                                                  then
+                                                                    let _ = "checkToken"
+                                                                     in let !(#
+                                                                               c,
+                                                                               cs
+                                                                               #) = readNext inp
+                                                                         in if (GHC.Classes.==) 'a' c
+                                                                              then
+                                                                                let _ = "lift2Value checkedHorizon=4"
+                                                                                 in let _ = "comment: satisfy ((GHC.Classes.==) 'b')"
+                                                                                     in let _ = "checkHorizon.oldCheck: checkedHorizon=4"
+                                                                                         in let _ = "checkToken"
+                                                                                             in let !(#
+                                                                                                       c,
+                                                                                                       cs
+                                                                                                       #) = readNext cs
+                                                                                                 in if (GHC.Classes.==) 'b' c
+                                                                                                      then
+                                                                                                        let _ = "lift2Value checkedHorizon=3"
+                                                                                                         in let _ = "comment: satisfy ((GHC.Classes.==) 'c')"
+                                                                                                             in let _ = "checkHorizon.oldCheck: checkedHorizon=3"
+                                                                                                                 in let _ = "checkToken"
+                                                                                                                     in let !(#
+                                                                                                                               c,
+                                                                                                                               cs
+                                                                                                                               #) = readNext cs
+                                                                                                                         in if (GHC.Classes.==) 'c' c
+                                                                                                                              then
+                                                                                                                                let _ = "lift2Value checkedHorizon=2"
+                                                                                                                                 in let _ = "comment: satisfy ((GHC.Classes.==) 'd')"
+                                                                                                                                     in let _ = "checkHorizon.oldCheck: checkedHorizon=2"
+                                                                                                                                         in let _ = "checkToken"
+                                                                                                                                             in let !(#
+                                                                                                                                                       c,
+                                                                                                                                                       cs
+                                                                                                                                                       #) = readNext cs
+                                                                                                                                                 in if (GHC.Classes.==) 'd' c
+                                                                                                                                                      then
+                                                                                                                                                        let _ = "lift2Value checkedHorizon=1"
+                                                                                                                                                         in let _ = "commit"
+                                                                                                                                                             in let _ = "resume"
+                                                                                                                                                                 in callerOnReturn
+                                                                                                                                                                      init
+                                                                                                                                                                      Data.Set.Internal.empty
+                                                                                                                                                                      ( let _ = "resume.genCode"
+                                                                                                                                                                         in (GHC.Types.:) 'a' ((GHC.Types.:) 'b' ((GHC.Types.:) 'c' ((GHC.Types.:) 'd' GHC.Types . [])))
+                                                                                                                                                                      )
+                                                                                                                                                                      cs
+                                                                                                                                                      else
+                                                                                                                                                        let _ = "checkToken.fail"
+                                                                                                                                                         in let failExp =
+                                                                                                                                                                  Data.Set.Internal.Bin
+                                                                                                                                                                    1
+                                                                                                                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                        ( case inputToken of
+                                                                                                                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'd'
+                                                                                                                                                                        )
+                                                                                                                                                                    )
+                                                                                                                                                                    Data.Set.Internal.Tip
+                                                                                                                                                                    Data.Set.Internal.Tip
+                                                                                                                                                             in let (#
+                                                                                                                                                                      farInp,
+                                                                                                                                                                      farExp
+                                                                                                                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init cs of
+                                                                                                                                                                        GHC.Types.LT ->
+                                                                                                                                                                          (#
+                                                                                                                                                                            cs,
+                                                                                                                                                                            failExp
+                                                                                                                                                                          #)
+                                                                                                                                                                        GHC.Types.EQ ->
+                                                                                                                                                                          (#
+                                                                                                                                                                            init,
+                                                                                                                                                                            failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                                                                                                          #)
+                                                                                                                                                                        GHC.Types.GT ->
+                                                                                                                                                                          (#
+                                                                                                                                                                            init,
+                                                                                                                                                                            Data.Set.Internal.empty
+                                                                                                                                                                          #)
+                                                                                                                                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                                                                              else
+                                                                                                                                let _ = "checkToken.fail"
+                                                                                                                                 in let failExp =
+                                                                                                                                          Data.Set.Internal.Bin
+                                                                                                                                            1
+                                                                                                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                ( case inputToken of
+                                                                                                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'c'
+                                                                                                                                                )
+                                                                                                                                            )
+                                                                                                                                            Data.Set.Internal.Tip
+                                                                                                                                            Data.Set.Internal.Tip
+                                                                                                                                     in let (#
+                                                                                                                                              farInp,
+                                                                                                                                              farExp
+                                                                                                                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init cs of
+                                                                                                                                                GHC.Types.LT ->
+                                                                                                                                                  (#
+                                                                                                                                                    cs,
+                                                                                                                                                    failExp
+                                                                                                                                                  #)
+                                                                                                                                                GHC.Types.EQ ->
+                                                                                                                                                  (#
+                                                                                                                                                    init,
+                                                                                                                                                    failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                                                                                  #)
+                                                                                                                                                GHC.Types.GT ->
+                                                                                                                                                  (#
+                                                                                                                                                    init,
+                                                                                                                                                    Data.Set.Internal.empty
+                                                                                                                                                  #)
+                                                                                                                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                                                      else
+                                                                                                        let _ = "checkToken.fail"
+                                                                                                         in let failExp =
+                                                                                                                  Data.Set.Internal.Bin
+                                                                                                                    1
+                                                                                                                    ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                        ( case inputToken of
+                                                                                                                            (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'b'
+                                                                                                                        )
+                                                                                                                    )
+                                                                                                                    Data.Set.Internal.Tip
+                                                                                                                    Data.Set.Internal.Tip
+                                                                                                             in let (#
+                                                                                                                      farInp,
+                                                                                                                      farExp
+                                                                                                                      #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init cs of
+                                                                                                                        GHC.Types.LT ->
+                                                                                                                          (#
+                                                                                                                            cs,
+                                                                                                                            failExp
+                                                                                                                          #)
+                                                                                                                        GHC.Types.EQ ->
+                                                                                                                          (#
+                                                                                                                            init,
+                                                                                                                            failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                                                          #)
+                                                                                                                        GHC.Types.GT ->
+                                                                                                                          (#
+                                                                                                                            init,
+                                                                                                                            Data.Set.Internal.empty
+                                                                                                                          #)
+                                                                                                                 in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                              else
+                                                                                let _ = "checkToken.fail"
+                                                                                 in let failExp =
+                                                                                          Data.Set.Internal.Bin
+                                                                                            1
+                                                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                ( case inputToken of
+                                                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
+                                                                                                )
+                                                                                            )
+                                                                                            Data.Set.Internal.Tip
+                                                                                            Data.Set.Internal.Tip
+                                                                                     in let (#
+                                                                                              farInp,
+                                                                                              farExp
+                                                                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                                GHC.Types.LT ->
+                                                                                                  (#
+                                                                                                    inp,
+                                                                                                    failExp
+                                                                                                  #)
+                                                                                                GHC.Types.EQ ->
+                                                                                                  (#
+                                                                                                    init,
+                                                                                                    failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                                  #)
+                                                                                                GHC.Types.GT ->
+                                                                                                  (#
+                                                                                                    init,
+                                                                                                    Data.Set.Internal.empty
+                                                                                                  #)
+                                                                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                  else
+                                                                    let _ = "checkHorizon.newCheck.fail"
+                                                                     in let failExp =
+                                                                              Data.Set.Internal.Bin
+                                                                                1
+                                                                                ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                    ( case inputToken of
+                                                                                        (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 4
+                                                                                    )
+                                                                                )
+                                                                                Data.Set.Internal.Tip
+                                                                                Data.Set.Internal.Tip
+                                                                         in let (#
+                                                                                  farInp,
+                                                                                  farExp
+                                                                                  #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                    GHC.Types.LT ->
+                                                                                      (#
+                                                                                        inp,
+                                                                                        failExp
+                                                                                      #)
+                                                                                    GHC.Types.EQ ->
+                                                                                      (#
+                                                                                        init,
+                                                                                        failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                      #)
+                                                                                    GHC.Types.GT ->
+                                                                                      (#
+                                                                                        init,
+                                                                                        Data.Set.Internal.empty
+                                                                                      #)
+                                                                             in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                               in let _ = "pushValue"
+                                   in name
+                                        ( let _ = "onReturn"
+                                           in \farInp farExp v (!inp) ->
+                                                let _ = "lift2Value checkedHorizon=0"
+                                                 in let _ = "pushValue"
+                                                     in do
+                                                          let dupv = \x -> x
+                                                          reg <- GHC.STRef.newSTRef dupv
+                                                          let _ = "iter"
+                                                           in let onException loopInput =
+                                                                    let _ = "onException"
+                                                                     in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                          let _ = "comment: raiseAgainIfConsumed"
+                                                                           in let _ = "saveInput checkedHorizon=0"
+                                                                               in let _ = "lift2Value checkedHorizon=0"
+                                                                                   in if ( \( Data.Text.Internal.Text
+                                                                                                _
+                                                                                                i
+                                                                                                _
+                                                                                              )
+                                                                                            ( Data.Text.Internal.Text
+                                                                                                _
+                                                                                                j
+                                                                                                _
+                                                                                              ) -> i GHC.Classes.== j
+                                                                                         )
+                                                                                        loopInput
+                                                                                        failInp
+                                                                                        then
+                                                                                          let _ = "choicesBranch checkedHorizon=0"
+                                                                                           in do
+                                                                                                sr <- GHC.STRef.readSTRef reg
+                                                                                                let _ = "pushValue"
+                                                                                                 in let _ = "lift2Value checkedHorizon=0"
+                                                                                                     in let _ = "lift2Value checkedHorizon=0"
+                                                                                                         in let join = \farInp farExp v (!inp) ->
+                                                                                                                  let _ = "lift2Value checkedHorizon=0"
+                                                                                                                   in let _ = "resume"
+                                                                                                                       in finalRet
+                                                                                                                            farInp
+                                                                                                                            farExp
+                                                                                                                            ( let _ = "resume.genCode"
+                                                                                                                               in GHC.Show.show ((GHC.Types.:) v (sr GHC.Types . []))
+                                                                                                                            )
+                                                                                                                            inp
+                                                                                                             in let _ = "catch ExceptionFailure checkedHorizon=0"
+                                                                                                                 in let onException =
+                                                                                                                          let _ = "onException"
+                                                                                                                           in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                                                                let _ = "comment: raiseAgainIfConsumed"
+                                                                                                                                 in let _ = "saveInput checkedHorizon=0"
+                                                                                                                                     in let _ = "lift2Value checkedHorizon=0"
+                                                                                                                                         in if ( \( Data.Text.Internal.Text
+                                                                                                                                                      _
+                                                                                                                                                      i
+                                                                                                                                                      _
+                                                                                                                                                    )
+                                                                                                                                                  ( Data.Text.Internal.Text
+                                                                                                                                                      _
+                                                                                                                                                      j
+                                                                                                                                                      _
+                                                                                                                                                    ) -> i GHC.Classes.== j
+                                                                                                                                               )
+                                                                                                                                              failInp
+                                                                                                                                              failInp
+                                                                                                                                              then
+                                                                                                                                                let _ = "choicesBranch checkedHorizon=0"
+                                                                                                                                                 in let _ = "comment: eof.fail"
+                                                                                                                                                     in let failExp = Data.Set.Internal.Bin 1 (Symantic.Parser.Grammar.Combinators.SomeFailure Symantic.Parser.Grammar.Combinators.FailureEnd) Data.Set.Internal.Tip Data.Set.Internal.Tip
+                                                                                                                                                         in let (#
+                                                                                                                                                                  farInp,
+                                                                                                                                                                  farExp
+                                                                                                                                                                  #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp failInp of
+                                                                                                                                                                    GHC.Types.LT ->
+                                                                                                                                                                      (#
+                                                                                                                                                                        failInp,
+                                                                                                                                                                        failExp
+                                                                                                                                                                      #)
+                                                                                                                                                                    GHC.Types.EQ ->
+                                                                                                                                                                      (#
+                                                                                                                                                                        farInp,
+                                                                                                                                                                        failExp GHC.Base.<> farExp
+                                                                                                                                                                      #)
+                                                                                                                                                                    GHC.Types.GT ->
+                                                                                                                                                                      (#
+                                                                                                                                                                        farInp,
+                                                                                                                                                                        farExp
+                                                                                                                                                                      #)
+                                                                                                                                                             in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                                                                              else
+                                                                                                                                                let _ = "choicesBranch.else"
+                                                                                                                                                 in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                                                     in let _ = "comment: negLook"
+                                                                                                                         in let _ = "catch ExceptionFailure checkedHorizon=0"
+                                                                                                                             in let onException =
+                                                                                                                                      let _ = "onException"
+                                                                                                                                       in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                                                                            let _ = "comment: negLook.reset"
+                                                                                                                                             in let _ = "loadInput checkedHorizon=0"
+                                                                                                                                                 in let _ = "checkHorizon.noCheck"
+                                                                                                                                                     in let _ = "pushValue"
+                                                                                                                                                         in let _ = "commit"
+                                                                                                                                                             in let _ = "resume"
+                                                                                                                                                                 in join
+                                                                                                                                                                      farInp
+                                                                                                                                                                      farExp
+                                                                                                                                                                      ( let _ = "resume.genCode"
+                                                                                                                                                                         in GHC.Tuple . ()
+                                                                                                                                                                      )
+                                                                                                                                                                      failInp
+                                                                                                                                 in let _ = "comment: negLook.ahead"
+                                                                                                                                     in let _ = "saveInput checkedHorizon=0"
+                                                                                                                                         in let _ = "comment: satisfy ((\\x_0 -> \\x_1 -> x_0) GHC.Types.True)"
+                                                                                                                                             in let inp = failInp
+                                                                                                                                                 in let readFail = onException
+                                                                                                                                                     in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=1"
+                                                                                                                                                         in if readMore inp
+                                                                                                                                                              then
+                                                                                                                                                                let _ = "checkToken"
+                                                                                                                                                                 in let !(#
+                                                                                                                                                                           c,
+                                                                                                                                                                           cs
+                                                                                                                                                                           #) = readNext inp
+                                                                                                                                                                     in let _ = "popValue"
+                                                                                                                                                                         in let _ = "commit"
+                                                                                                                                                                             in let _ = "loadInput checkedHorizon=0"
+                                                                                                                                                                                 in let _ = "checkHorizon.noCheck"
+                                                                                                                                                                                     in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                                                                                              else
+                                                                                                                                                                let _ = "checkHorizon.newCheck.fail"
+                                                                                                                                                                 in let failExp =
+                                                                                                                                                                          Data.Set.Internal.Bin
+                                                                                                                                                                            1
+                                                                                                                                                                            ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                                ( case inputToken of
+                                                                                                                                                                                    (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
+                                                                                                                                                                                )
+                                                                                                                                                                            )
+                                                                                                                                                                            Data.Set.Internal.Tip
+                                                                                                                                                                            Data.Set.Internal.Tip
+                                                                                                                                                                     in let (#
+                                                                                                                                                                              farInp,
+                                                                                                                                                                              farExp
+                                                                                                                                                                              #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                                                                GHC.Types.LT ->
+                                                                                                                                                                                  (#
+                                                                                                                                                                                    inp,
+                                                                                                                                                                                    failExp
+                                                                                                                                                                                  #)
+                                                                                                                                                                                GHC.Types.EQ ->
+                                                                                                                                                                                  (#
+                                                                                                                                                                                    farInp,
+                                                                                                                                                                                    failExp GHC.Base.<> farExp
+                                                                                                                                                                                  #)
+                                                                                                                                                                                GHC.Types.GT ->
+                                                                                                                                                                                  (#
+                                                                                                                                                                                    farInp,
+                                                                                                                                                                                    farExp
+                                                                                                                                                                                  #)
+                                                                                                                                                                         in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                        else
+                                                                                          let _ = "choicesBranch.else"
+                                                                                           in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                  loop = \_callerOnReturn callerInput callerOnExceptionStackByLabel ->
+                                                                    let _ = "pushValue"
+                                                                     in name
+                                                                          ( let _ = "onReturn"
+                                                                             in \farInp farExp v (!inp) ->
+                                                                                  let _ = "lift2Value checkedHorizon=0"
+                                                                                   in let _ = "pushValue"
+                                                                                       in let _ = "lift2Value checkedHorizon=0"
+                                                                                           in do
+                                                                                                sr <- GHC.STRef.readSTRef reg
+                                                                                                let _ = "lift2Value checkedHorizon=0"
+                                                                                                 in do
+                                                                                                      let dupv = \x -> sr ((GHC.Types.:) v x)
+                                                                                                      GHC.STRef.writeSTRef reg dupv
+                                                                                                      let _ = "jump"
+                                                                                                       in loop (GHC.Err.error "invalid onReturn") inp (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (onException callerInput) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                          )
+                                                                          callerInput
+                                                                          (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure (onException callerInput) Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                               in let _ = "jump"
+                                                                   in loop finalRet inp Data.Map.Internal.Tip
+                                        )
+                                        inp
+                                        Data.Map.Internal.Tip
+                            else
+                              let _ = "checkHorizon.newCheck.fail"
+                               in let failExp =
+                                        Data.Set.Internal.Bin
+                                          1
+                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                              ( case inputToken of
+                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 4
+                                              )
+                                          )
+                                          Data.Set.Internal.Tip
+                                          Data.Set.Internal.Tip
+                                   in let (#
+                                            farInp,
+                                            farExp
+                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                              GHC.Types.LT ->
+                                                (#
+                                                  inp,
+                                                  failExp
+                                                #)
+                                              GHC.Types.EQ ->
+                                                (#
+                                                  init,
+                                                  failExp GHC.Base.<> Data.Set.Internal.empty
+                                                #)
+                                              GHC.Types.GT ->
+                                                (#
+                                                  init,
+                                                  Data.Set.Internal.empty
+                                                #)
+                                       in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+        )
diff --git a/tests/Golden/Splice/G6.expected.txt b/tests/Golden/Splice/G6.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Splice/G6.expected.txt
@@ -0,0 +1,385 @@
+\(input :: inp) ->
+  let !(#
+         init,
+         readMore,
+         readNext
+         #) =
+          let _ = "cursorOf"
+           in let next
+                    ( t@( Data.Text.Internal.Text
+                            arr
+                            off
+                            unconsumed
+                          )
+                      ) =
+                      let !( Data.Text.Unsafe.Iter
+                               c
+                               d
+                             ) = Data.Text.Unsafe.iter t 0
+                       in (#
+                            c,
+                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
+                          #)
+                  more
+                    ( Data.Text.Internal.Text
+                        _
+                        _
+                        unconsumed
+                      ) = unconsumed GHC.Classes.> 0
+               in (# input, more, next #)
+      finalRet = \_farInp _farExp v _inp -> Symantic.Parser.Machine.Generate.returnST GHC.Base.$ Data.Either.Right v
+      finalRaise ::
+        forall st b.
+        Symantic.Parser.Machine.Generate.OnException
+          st
+          inp
+          b = \(!exn) _failInp (!farInp) (!farExp) ->
+          Symantic.Parser.Machine.Generate.returnST GHC.Base.$
+            Data.Either.Left
+              Symantic.Parser.Machine.Generate.ParsingError
+                { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
+                  Symantic.Parser.Machine.Generate.parsingErrorException = exn,
+                  Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
+                    if readMore farInp
+                      then
+                        GHC.Maybe.Just
+                          ( let (#
+                                  c,
+                                  _
+                                  #) = readNext farInp
+                             in c
+                          )
+                      else GHC.Maybe.Nothing,
+                  Symantic.Parser.Machine.Generate.parsingErrorExpecting =
+                    let ( minHoriz,
+                          res
+                          ) =
+                            Data.Set.Internal.foldr
+                              ( \f
+                                 ( minH,
+                                   acc
+                                   ) -> case Symantic.Parser.Grammar.Combinators.unSomeFailure f of
+                                    GHC.Maybe.Just (Symantic.Parser.Grammar.Combinators.FailureHorizon h :: Symantic.Parser.Grammar.Combinators.Failure (Symantic.Parser.Grammar.Combinators.CombSatisfiable (Symantic.Parser.Machine.Input.InputToken inp)))
+                                      | GHC.Maybe.Just old <- minH ->
+                                        ( GHC.Maybe.Just (GHC.Classes.min old h),
+                                          acc
+                                        )
+                                      | GHC.Base.otherwise ->
+                                        ( GHC.Maybe.Just h,
+                                          acc
+                                        )
+                                    _ ->
+                                      ( minH,
+                                        f GHC.Types.: acc
+                                      )
+                              )
+                              ( GHC.Maybe.Nothing,
+                                GHC.Types . []
+                              )
+                              farExp
+                     in Data.Set.Internal.fromList GHC.Base.$
+                          ( case minHoriz of
+                              GHC.Maybe.Just h -> Symantic.Parser.Grammar.Combinators.SomeFailure (Symantic.Parser.Grammar.Combinators.FailureHorizon @(Symantic.Parser.Machine.Input.InputToken inp) h) GHC.Types.: res
+                              GHC.Maybe.Nothing -> res
+                          )
+                }
+   in GHC.ST.runST
+        ( let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
+           in let inp = init
+               in let readFail = finalRaise
+                   in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=2"
+                       in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 inp)
+                            then
+                              let
+                               in let _ = "pushValue"
+                                   in let join = \farInp farExp v (!inp) ->
+                                            let _ = "lift2Value checkedHorizon=0"
+                                             in let _ = "resume"
+                                                 in finalRet
+                                                      farInp
+                                                      farExp
+                                                      ( let _ = "resume.genCode"
+                                                         in GHC.Show.show v
+                                                      )
+                                                      inp
+                                       in let _ = "catch ExceptionFailure checkedHorizon=2"
+                                           in let onException =
+                                                    let _ = "onException"
+                                                     in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                          let _ = "comment: raiseAgainIfConsumed"
+                                                           in let _ = "saveInput checkedHorizon=0"
+                                                               in let _ = "lift2Value checkedHorizon=0"
+                                                                   in if ( \( Data.Text.Internal.Text
+                                                                                _
+                                                                                i
+                                                                                _
+                                                                              )
+                                                                            ( Data.Text.Internal.Text
+                                                                                _
+                                                                                j
+                                                                                _
+                                                                              ) -> i GHC.Classes.== j
+                                                                         )
+                                                                        inp
+                                                                        failInp
+                                                                        then
+                                                                          let _ = "choicesBranch checkedHorizon=0"
+                                                                           in let _ = "pushValue"
+                                                                               in let _ = "comment: satisfy ((GHC.Classes.==) 'a')"
+                                                                                   in let inp = failInp
+                                                                                       in let readFail = finalRaise
+                                                                                           in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=2"
+                                                                                               in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 inp)
+                                                                                                    then
+                                                                                                      let _ = "checkToken"
+                                                                                                       in let !(#
+                                                                                                                 c,
+                                                                                                                 cs
+                                                                                                                 #) = readNext inp
+                                                                                                           in if (GHC.Classes.==) 'a' c
+                                                                                                                then
+                                                                                                                  let _ = "lift2Value checkedHorizon=2"
+                                                                                                                   in let _ = "comment: satisfy ((GHC.Classes.==) 'b')"
+                                                                                                                       in let _ = "checkHorizon.oldCheck: checkedHorizon=2"
+                                                                                                                           in let _ = "checkToken"
+                                                                                                                               in let !(#
+                                                                                                                                         c,
+                                                                                                                                         cs
+                                                                                                                                         #) = readNext cs
+                                                                                                                                   in if (GHC.Classes.==) 'b' c
+                                                                                                                                        then
+                                                                                                                                          let _ = "lift2Value checkedHorizon=1"
+                                                                                                                                           in let _ = "resume"
+                                                                                                                                               in join
+                                                                                                                                                    farInp
+                                                                                                                                                    farExp
+                                                                                                                                                    ( let _ = "resume.genCode"
+                                                                                                                                                       in (GHC.Types.:) 'a' ((GHC.Types.:) 'b' GHC.Types . [])
+                                                                                                                                                    )
+                                                                                                                                                    cs
+                                                                                                                                        else
+                                                                                                                                          let _ = "checkToken.fail"
+                                                                                                                                           in let failExp =
+                                                                                                                                                    Data.Set.Internal.Bin
+                                                                                                                                                      1
+                                                                                                                                                      ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                          ( case inputToken of
+                                                                                                                                                              (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'b'
+                                                                                                                                                          )
+                                                                                                                                                      )
+                                                                                                                                                      Data.Set.Internal.Tip
+                                                                                                                                                      Data.Set.Internal.Tip
+                                                                                                                                               in let (#
+                                                                                                                                                        farInp,
+                                                                                                                                                        farExp
+                                                                                                                                                        #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp cs of
+                                                                                                                                                          GHC.Types.LT ->
+                                                                                                                                                            (#
+                                                                                                                                                              cs,
+                                                                                                                                                              failExp
+                                                                                                                                                            #)
+                                                                                                                                                          GHC.Types.EQ ->
+                                                                                                                                                            (#
+                                                                                                                                                              farInp,
+                                                                                                                                                              failExp GHC.Base.<> farExp
+                                                                                                                                                            #)
+                                                                                                                                                          GHC.Types.GT ->
+                                                                                                                                                            (#
+                                                                                                                                                              farInp,
+                                                                                                                                                              farExp
+                                                                                                                                                            #)
+                                                                                                                                                   in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                                                                else
+                                                                                                                  let _ = "checkToken.fail"
+                                                                                                                   in let failExp =
+                                                                                                                            Data.Set.Internal.Bin
+                                                                                                                              1
+                                                                                                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                  ( case inputToken of
+                                                                                                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
+                                                                                                                                  )
+                                                                                                                              )
+                                                                                                                              Data.Set.Internal.Tip
+                                                                                                                              Data.Set.Internal.Tip
+                                                                                                                       in let (#
+                                                                                                                                farInp,
+                                                                                                                                farExp
+                                                                                                                                #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                  GHC.Types.LT ->
+                                                                                                                                    (#
+                                                                                                                                      inp,
+                                                                                                                                      failExp
+                                                                                                                                    #)
+                                                                                                                                  GHC.Types.EQ ->
+                                                                                                                                    (#
+                                                                                                                                      farInp,
+                                                                                                                                      failExp GHC.Base.<> farExp
+                                                                                                                                    #)
+                                                                                                                                  GHC.Types.GT ->
+                                                                                                                                    (#
+                                                                                                                                      farInp,
+                                                                                                                                      farExp
+                                                                                                                                    #)
+                                                                                                                           in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                    else
+                                                                                                      let _ = "checkHorizon.newCheck.fail"
+                                                                                                       in let failExp =
+                                                                                                                Data.Set.Internal.Bin
+                                                                                                                  1
+                                                                                                                  ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                      ( case inputToken of
+                                                                                                                          (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
+                                                                                                                      )
+                                                                                                                  )
+                                                                                                                  Data.Set.Internal.Tip
+                                                                                                                  Data.Set.Internal.Tip
+                                                                                                           in let (#
+                                                                                                                    farInp,
+                                                                                                                    farExp
+                                                                                                                    #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                      GHC.Types.LT ->
+                                                                                                                        (#
+                                                                                                                          inp,
+                                                                                                                          failExp
+                                                                                                                        #)
+                                                                                                                      GHC.Types.EQ ->
+                                                                                                                        (#
+                                                                                                                          farInp,
+                                                                                                                          failExp GHC.Base.<> farExp
+                                                                                                                        #)
+                                                                                                                      GHC.Types.GT ->
+                                                                                                                        (#
+                                                                                                                          farInp,
+                                                                                                                          farExp
+                                                                                                                        #)
+                                                                                                               in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                        else
+                                                                          let _ = "choicesBranch.else"
+                                                                           in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                               in let _ = "pushValue"
+                                                   in let _ = "comment: satisfy ((GHC.Classes.==) 'a')"
+                                                       in let _ = "checkHorizon.oldCheck: checkedHorizon=2"
+                                                           in let _ = "checkToken"
+                                                               in let !(#
+                                                                         c,
+                                                                         cs
+                                                                         #) = readNext inp
+                                                                   in if (GHC.Classes.==) 'a' c
+                                                                        then
+                                                                          let _ = "lift2Value checkedHorizon=1"
+                                                                           in let _ = "comment: satisfy ((GHC.Classes.==) 'a')"
+                                                                               in let _ = "checkHorizon.oldCheck: checkedHorizon=1"
+                                                                                   in let _ = "checkToken"
+                                                                                       in let !(#
+                                                                                                 c,
+                                                                                                 cs
+                                                                                                 #) = readNext cs
+                                                                                           in if (GHC.Classes.==) 'a' c
+                                                                                                then
+                                                                                                  let _ = "lift2Value checkedHorizon=0"
+                                                                                                   in let _ = "commit"
+                                                                                                       in let _ = "resume"
+                                                                                                           in join
+                                                                                                                init
+                                                                                                                Data.Set.Internal.empty
+                                                                                                                ( let _ = "resume.genCode"
+                                                                                                                   in (GHC.Types.:) 'a' ((GHC.Types.:) 'a' GHC.Types . [])
+                                                                                                                )
+                                                                                                                cs
+                                                                                                else
+                                                                                                  let _ = "checkToken.fail"
+                                                                                                   in let failExp =
+                                                                                                            Data.Set.Internal.Bin
+                                                                                                              1
+                                                                                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                  ( case inputToken of
+                                                                                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
+                                                                                                                  )
+                                                                                                              )
+                                                                                                              Data.Set.Internal.Tip
+                                                                                                              Data.Set.Internal.Tip
+                                                                                                       in let (#
+                                                                                                                farInp,
+                                                                                                                farExp
+                                                                                                                #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init cs of
+                                                                                                                  GHC.Types.LT ->
+                                                                                                                    (#
+                                                                                                                      cs,
+                                                                                                                      failExp
+                                                                                                                    #)
+                                                                                                                  GHC.Types.EQ ->
+                                                                                                                    (#
+                                                                                                                      init,
+                                                                                                                      failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                                                    #)
+                                                                                                                  GHC.Types.GT ->
+                                                                                                                    (#
+                                                                                                                      init,
+                                                                                                                      Data.Set.Internal.empty
+                                                                                                                    #)
+                                                                                                           in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                        else
+                                                                          let _ = "checkToken.fail"
+                                                                           in let failExp =
+                                                                                    Data.Set.Internal.Bin
+                                                                                      1
+                                                                                      ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                          ( case inputToken of
+                                                                                              (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
+                                                                                          )
+                                                                                      )
+                                                                                      Data.Set.Internal.Tip
+                                                                                      Data.Set.Internal.Tip
+                                                                               in let (#
+                                                                                        farInp,
+                                                                                        farExp
+                                                                                        #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                          GHC.Types.LT ->
+                                                                                            (#
+                                                                                              inp,
+                                                                                              failExp
+                                                                                            #)
+                                                                                          GHC.Types.EQ ->
+                                                                                            (#
+                                                                                              init,
+                                                                                              failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                            #)
+                                                                                          GHC.Types.GT ->
+                                                                                            (#
+                                                                                              init,
+                                                                                              Data.Set.Internal.empty
+                                                                                            #)
+                                                                                   in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                            else
+                              let _ = "checkHorizon.newCheck.fail"
+                               in let failExp =
+                                        Data.Set.Internal.Bin
+                                          1
+                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                              ( case inputToken of
+                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
+                                              )
+                                          )
+                                          Data.Set.Internal.Tip
+                                          Data.Set.Internal.Tip
+                                   in let (#
+                                            farInp,
+                                            farExp
+                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                              GHC.Types.LT ->
+                                                (#
+                                                  inp,
+                                                  failExp
+                                                #)
+                                              GHC.Types.EQ ->
+                                                (#
+                                                  init,
+                                                  failExp GHC.Base.<> Data.Set.Internal.empty
+                                                #)
+                                              GHC.Types.GT ->
+                                                (#
+                                                  init,
+                                                  Data.Set.Internal.empty
+                                                #)
+                                       in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+        )
diff --git a/tests/Golden/Splice/G7.expected.txt b/tests/Golden/Splice/G7.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Splice/G7.expected.txt
@@ -0,0 +1,401 @@
+\(input :: inp) ->
+  let !(#
+         init,
+         readMore,
+         readNext
+         #) =
+          let _ = "cursorOf"
+           in let next
+                    ( t@( Data.Text.Internal.Text
+                            arr
+                            off
+                            unconsumed
+                          )
+                      ) =
+                      let !( Data.Text.Unsafe.Iter
+                               c
+                               d
+                             ) = Data.Text.Unsafe.iter t 0
+                       in (#
+                            c,
+                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
+                          #)
+                  more
+                    ( Data.Text.Internal.Text
+                        _
+                        _
+                        unconsumed
+                      ) = unconsumed GHC.Classes.> 0
+               in (# input, more, next #)
+      finalRet = \_farInp _farExp v _inp -> Symantic.Parser.Machine.Generate.returnST GHC.Base.$ Data.Either.Right v
+      finalRaise ::
+        forall st b.
+        Symantic.Parser.Machine.Generate.OnException
+          st
+          inp
+          b = \(!exn) _failInp (!farInp) (!farExp) ->
+          Symantic.Parser.Machine.Generate.returnST GHC.Base.$
+            Data.Either.Left
+              Symantic.Parser.Machine.Generate.ParsingError
+                { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
+                  Symantic.Parser.Machine.Generate.parsingErrorException = exn,
+                  Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
+                    if readMore farInp
+                      then
+                        GHC.Maybe.Just
+                          ( let (#
+                                  c,
+                                  _
+                                  #) = readNext farInp
+                             in c
+                          )
+                      else GHC.Maybe.Nothing,
+                  Symantic.Parser.Machine.Generate.parsingErrorExpecting =
+                    let ( minHoriz,
+                          res
+                          ) =
+                            Data.Set.Internal.foldr
+                              ( \f
+                                 ( minH,
+                                   acc
+                                   ) -> case Symantic.Parser.Grammar.Combinators.unSomeFailure f of
+                                    GHC.Maybe.Just (Symantic.Parser.Grammar.Combinators.FailureHorizon h :: Symantic.Parser.Grammar.Combinators.Failure (Symantic.Parser.Grammar.Combinators.CombSatisfiable (Symantic.Parser.Machine.Input.InputToken inp)))
+                                      | GHC.Maybe.Just old <- minH ->
+                                        ( GHC.Maybe.Just (GHC.Classes.min old h),
+                                          acc
+                                        )
+                                      | GHC.Base.otherwise ->
+                                        ( GHC.Maybe.Just h,
+                                          acc
+                                        )
+                                    _ ->
+                                      ( minH,
+                                        f GHC.Types.: acc
+                                      )
+                              )
+                              ( GHC.Maybe.Nothing,
+                                GHC.Types . []
+                              )
+                              farExp
+                     in Data.Set.Internal.fromList GHC.Base.$
+                          ( case minHoriz of
+                              GHC.Maybe.Just h -> Symantic.Parser.Grammar.Combinators.SomeFailure (Symantic.Parser.Grammar.Combinators.FailureHorizon @(Symantic.Parser.Machine.Input.InputToken inp) h) GHC.Types.: res
+                              GHC.Maybe.Nothing -> res
+                          )
+                }
+   in GHC.ST.runST
+        ( let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
+           in let inp = init
+               in let readFail = finalRaise
+                   in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=2"
+                       in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 inp)
+                            then
+                              let
+                               in let _ = "pushValue"
+                                   in let join = \farInp farExp v (!inp) ->
+                                            let _ = "lift2Value checkedHorizon=0"
+                                             in let _ = "resume"
+                                                 in finalRet
+                                                      farInp
+                                                      farExp
+                                                      ( let _ = "resume.genCode"
+                                                         in GHC.Show.show v
+                                                      )
+                                                      inp
+                                       in let _ = "catch ExceptionFailure checkedHorizon=2"
+                                           in let onException =
+                                                    let _ = "onException"
+                                                     in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                          let _ = "comment: raiseAgainIfConsumed"
+                                                           in let _ = "saveInput checkedHorizon=0"
+                                                               in let _ = "lift2Value checkedHorizon=0"
+                                                                   in if ( \( Data.Text.Internal.Text
+                                                                                _
+                                                                                i
+                                                                                _
+                                                                              )
+                                                                            ( Data.Text.Internal.Text
+                                                                                _
+                                                                                j
+                                                                                _
+                                                                              ) -> i GHC.Classes.== j
+                                                                         )
+                                                                        inp
+                                                                        failInp
+                                                                        then
+                                                                          let _ = "choicesBranch checkedHorizon=0"
+                                                                           in let _ = "catch ExceptionFailure checkedHorizon=0"
+                                                                               in let onException =
+                                                                                        let _ = "onException"
+                                                                                         in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                              let _ = "loadInput checkedHorizon=0"
+                                                                                               in let _ = "checkHorizon.noCheck"
+                                                                                                   in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                   in let _ = "pushValue"
+                                                                                       in let _ = "comment: satisfy ((GHC.Classes.==) 'a')"
+                                                                                           in let inp = failInp
+                                                                                               in let readFail = onException
+                                                                                                   in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=2"
+                                                                                                       in if readMore (Symantic.Parser.Machine.Input.shiftRightText 1 inp)
+                                                                                                            then
+                                                                                                              let _ = "checkToken"
+                                                                                                               in let !(#
+                                                                                                                         c,
+                                                                                                                         cs
+                                                                                                                         #) = readNext inp
+                                                                                                                   in if (GHC.Classes.==) 'a' c
+                                                                                                                        then
+                                                                                                                          let _ = "lift2Value checkedHorizon=2"
+                                                                                                                           in let _ = "comment: satisfy ((GHC.Classes.==) 'b')"
+                                                                                                                               in let _ = "checkHorizon.oldCheck: checkedHorizon=2"
+                                                                                                                                   in let _ = "checkToken"
+                                                                                                                                       in let !(#
+                                                                                                                                                 c,
+                                                                                                                                                 cs
+                                                                                                                                                 #) = readNext cs
+                                                                                                                                           in if (GHC.Classes.==) 'b' c
+                                                                                                                                                then
+                                                                                                                                                  let _ = "lift2Value checkedHorizon=1"
+                                                                                                                                                   in let _ = "commit"
+                                                                                                                                                       in let _ = "resume"
+                                                                                                                                                           in join
+                                                                                                                                                                farInp
+                                                                                                                                                                farExp
+                                                                                                                                                                ( let _ = "resume.genCode"
+                                                                                                                                                                   in (GHC.Types.:) 'a' ((GHC.Types.:) 'b' GHC.Types . [])
+                                                                                                                                                                )
+                                                                                                                                                                cs
+                                                                                                                                                else
+                                                                                                                                                  let _ = "checkToken.fail"
+                                                                                                                                                   in let failExp =
+                                                                                                                                                            Data.Set.Internal.Bin
+                                                                                                                                                              1
+                                                                                                                                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                                  ( case inputToken of
+                                                                                                                                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'b'
+                                                                                                                                                                  )
+                                                                                                                                                              )
+                                                                                                                                                              Data.Set.Internal.Tip
+                                                                                                                                                              Data.Set.Internal.Tip
+                                                                                                                                                       in let (#
+                                                                                                                                                                farInp,
+                                                                                                                                                                farExp
+                                                                                                                                                                #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp cs of
+                                                                                                                                                                  GHC.Types.LT ->
+                                                                                                                                                                    (#
+                                                                                                                                                                      cs,
+                                                                                                                                                                      failExp
+                                                                                                                                                                    #)
+                                                                                                                                                                  GHC.Types.EQ ->
+                                                                                                                                                                    (#
+                                                                                                                                                                      farInp,
+                                                                                                                                                                      failExp GHC.Base.<> farExp
+                                                                                                                                                                    #)
+                                                                                                                                                                  GHC.Types.GT ->
+                                                                                                                                                                    (#
+                                                                                                                                                                      farInp,
+                                                                                                                                                                      farExp
+                                                                                                                                                                    #)
+                                                                                                                                                           in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                                                                        else
+                                                                                                                          let _ = "checkToken.fail"
+                                                                                                                           in let failExp =
+                                                                                                                                    Data.Set.Internal.Bin
+                                                                                                                                      1
+                                                                                                                                      ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                          ( case inputToken of
+                                                                                                                                              (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
+                                                                                                                                          )
+                                                                                                                                      )
+                                                                                                                                      Data.Set.Internal.Tip
+                                                                                                                                      Data.Set.Internal.Tip
+                                                                                                                               in let (#
+                                                                                                                                        farInp,
+                                                                                                                                        farExp
+                                                                                                                                        #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                          GHC.Types.LT ->
+                                                                                                                                            (#
+                                                                                                                                              inp,
+                                                                                                                                              failExp
+                                                                                                                                            #)
+                                                                                                                                          GHC.Types.EQ ->
+                                                                                                                                            (#
+                                                                                                                                              farInp,
+                                                                                                                                              failExp GHC.Base.<> farExp
+                                                                                                                                            #)
+                                                                                                                                          GHC.Types.GT ->
+                                                                                                                                            (#
+                                                                                                                                              farInp,
+                                                                                                                                              farExp
+                                                                                                                                            #)
+                                                                                                                                   in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                                                            else
+                                                                                                              let _ = "checkHorizon.newCheck.fail"
+                                                                                                               in let failExp =
+                                                                                                                        Data.Set.Internal.Bin
+                                                                                                                          1
+                                                                                                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                              ( case inputToken of
+                                                                                                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
+                                                                                                                              )
+                                                                                                                          )
+                                                                                                                          Data.Set.Internal.Tip
+                                                                                                                          Data.Set.Internal.Tip
+                                                                                                                   in let (#
+                                                                                                                            farInp,
+                                                                                                                            farExp
+                                                                                                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                              GHC.Types.LT ->
+                                                                                                                                (#
+                                                                                                                                  inp,
+                                                                                                                                  failExp
+                                                                                                                                #)
+                                                                                                                              GHC.Types.EQ ->
+                                                                                                                                (#
+                                                                                                                                  farInp,
+                                                                                                                                  failExp GHC.Base.<> farExp
+                                                                                                                                #)
+                                                                                                                              GHC.Types.GT ->
+                                                                                                                                (#
+                                                                                                                                  farInp,
+                                                                                                                                  farExp
+                                                                                                                                #)
+                                                                                                                       in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                        else
+                                                                          let _ = "choicesBranch.else"
+                                                                           in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                               in let _ = "catch ExceptionFailure checkedHorizon=2"
+                                                   in let onException =
+                                                            let _ = "onException"
+                                                             in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                  let _ = "loadInput checkedHorizon=2"
+                                                                   in let _ = "checkHorizon.oldCheck: checkedHorizon=2"
+                                                                       in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                       in let _ = "pushValue"
+                                                           in let _ = "comment: satisfy ((GHC.Classes.==) 'a')"
+                                                               in let _ = "checkHorizon.oldCheck: checkedHorizon=2"
+                                                                   in let _ = "checkToken"
+                                                                       in let !(#
+                                                                                 c,
+                                                                                 cs
+                                                                                 #) = readNext inp
+                                                                           in if (GHC.Classes.==) 'a' c
+                                                                                then
+                                                                                  let _ = "lift2Value checkedHorizon=1"
+                                                                                   in let _ = "comment: satisfy ((GHC.Classes.==) 'a')"
+                                                                                       in let _ = "checkHorizon.oldCheck: checkedHorizon=1"
+                                                                                           in let _ = "checkToken"
+                                                                                               in let !(#
+                                                                                                         c,
+                                                                                                         cs
+                                                                                                         #) = readNext cs
+                                                                                                   in if (GHC.Classes.==) 'a' c
+                                                                                                        then
+                                                                                                          let _ = "lift2Value checkedHorizon=0"
+                                                                                                           in let _ = "commit"
+                                                                                                               in let _ = "commit"
+                                                                                                                   in let _ = "resume"
+                                                                                                                       in join
+                                                                                                                            init
+                                                                                                                            Data.Set.Internal.empty
+                                                                                                                            ( let _ = "resume.genCode"
+                                                                                                                               in (GHC.Types.:) 'a' ((GHC.Types.:) 'a' GHC.Types . [])
+                                                                                                                            )
+                                                                                                                            cs
+                                                                                                        else
+                                                                                                          let _ = "checkToken.fail"
+                                                                                                           in let failExp =
+                                                                                                                    Data.Set.Internal.Bin
+                                                                                                                      1
+                                                                                                                      ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                          ( case inputToken of
+                                                                                                                              (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
+                                                                                                                          )
+                                                                                                                      )
+                                                                                                                      Data.Set.Internal.Tip
+                                                                                                                      Data.Set.Internal.Tip
+                                                                                                               in let (#
+                                                                                                                        farInp,
+                                                                                                                        farExp
+                                                                                                                        #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init cs of
+                                                                                                                          GHC.Types.LT ->
+                                                                                                                            (#
+                                                                                                                              cs,
+                                                                                                                              failExp
+                                                                                                                            #)
+                                                                                                                          GHC.Types.EQ ->
+                                                                                                                            (#
+                                                                                                                              init,
+                                                                                                                              failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                                                            #)
+                                                                                                                          GHC.Types.GT ->
+                                                                                                                            (#
+                                                                                                                              init,
+                                                                                                                              Data.Set.Internal.empty
+                                                                                                                            #)
+                                                                                                                   in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure cs farInp farExp
+                                                                                else
+                                                                                  let _ = "checkToken.fail"
+                                                                                   in let failExp =
+                                                                                            Data.Set.Internal.Bin
+                                                                                              1
+                                                                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                  ( case inputToken of
+                                                                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'a'
+                                                                                                  )
+                                                                                              )
+                                                                                              Data.Set.Internal.Tip
+                                                                                              Data.Set.Internal.Tip
+                                                                                       in let (#
+                                                                                                farInp,
+                                                                                                farExp
+                                                                                                #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                                  GHC.Types.LT ->
+                                                                                                    (#
+                                                                                                      inp,
+                                                                                                      failExp
+                                                                                                    #)
+                                                                                                  GHC.Types.EQ ->
+                                                                                                    (#
+                                                                                                      init,
+                                                                                                      failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                                    #)
+                                                                                                  GHC.Types.GT ->
+                                                                                                    (#
+                                                                                                      init,
+                                                                                                      Data.Set.Internal.empty
+                                                                                                    #)
+                                                                                           in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                            else
+                              let _ = "checkHorizon.newCheck.fail"
+                               in let failExp =
+                                        Data.Set.Internal.Bin
+                                          1
+                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                              ( case inputToken of
+                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 2
+                                              )
+                                          )
+                                          Data.Set.Internal.Tip
+                                          Data.Set.Internal.Tip
+                                   in let (#
+                                            farInp,
+                                            farExp
+                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                              GHC.Types.LT ->
+                                                (#
+                                                  inp,
+                                                  failExp
+                                                #)
+                                              GHC.Types.EQ ->
+                                                (#
+                                                  init,
+                                                  failExp GHC.Base.<> Data.Set.Internal.empty
+                                                #)
+                                              GHC.Types.GT ->
+                                                (#
+                                                  init,
+                                                  Data.Set.Internal.empty
+                                                #)
+                                       in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+        )
diff --git a/tests/Golden/Splice/G8.expected.txt b/tests/Golden/Splice/G8.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Splice/G8.expected.txt
@@ -0,0 +1,342 @@
+\(input :: inp) ->
+  let !(#
+         init,
+         readMore,
+         readNext
+         #) =
+          let _ = "cursorOf"
+           in let next
+                    ( t@( Data.Text.Internal.Text
+                            arr
+                            off
+                            unconsumed
+                          )
+                      ) =
+                      let !( Data.Text.Unsafe.Iter
+                               c
+                               d
+                             ) = Data.Text.Unsafe.iter t 0
+                       in (#
+                            c,
+                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
+                          #)
+                  more
+                    ( Data.Text.Internal.Text
+                        _
+                        _
+                        unconsumed
+                      ) = unconsumed GHC.Classes.> 0
+               in (# input, more, next #)
+      finalRet = \_farInp _farExp v _inp -> Symantic.Parser.Machine.Generate.returnST GHC.Base.$ Data.Either.Right v
+      finalRaise ::
+        forall st b.
+        Symantic.Parser.Machine.Generate.OnException
+          st
+          inp
+          b = \(!exn) _failInp (!farInp) (!farExp) ->
+          Symantic.Parser.Machine.Generate.returnST GHC.Base.$
+            Data.Either.Left
+              Symantic.Parser.Machine.Generate.ParsingError
+                { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
+                  Symantic.Parser.Machine.Generate.parsingErrorException = exn,
+                  Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
+                    if readMore farInp
+                      then
+                        GHC.Maybe.Just
+                          ( let (#
+                                  c,
+                                  _
+                                  #) = readNext farInp
+                             in c
+                          )
+                      else GHC.Maybe.Nothing,
+                  Symantic.Parser.Machine.Generate.parsingErrorExpecting =
+                    let ( minHoriz,
+                          res
+                          ) =
+                            Data.Set.Internal.foldr
+                              ( \f
+                                 ( minH,
+                                   acc
+                                   ) -> case Symantic.Parser.Grammar.Combinators.unSomeFailure f of
+                                    GHC.Maybe.Just (Symantic.Parser.Grammar.Combinators.FailureHorizon h :: Symantic.Parser.Grammar.Combinators.Failure (Symantic.Parser.Grammar.Combinators.CombSatisfiable (Symantic.Parser.Machine.Input.InputToken inp)))
+                                      | GHC.Maybe.Just old <- minH ->
+                                        ( GHC.Maybe.Just (GHC.Classes.min old h),
+                                          acc
+                                        )
+                                      | GHC.Base.otherwise ->
+                                        ( GHC.Maybe.Just h,
+                                          acc
+                                        )
+                                    _ ->
+                                      ( minH,
+                                        f GHC.Types.: acc
+                                      )
+                              )
+                              ( GHC.Maybe.Nothing,
+                                GHC.Types . []
+                              )
+                              farExp
+                     in Data.Set.Internal.fromList GHC.Base.$
+                          ( case minHoriz of
+                              GHC.Maybe.Just h -> Symantic.Parser.Grammar.Combinators.SomeFailure (Symantic.Parser.Grammar.Combinators.FailureHorizon @(Symantic.Parser.Machine.Input.InputToken inp) h) GHC.Types.: res
+                              GHC.Maybe.Nothing -> res
+                          )
+                }
+   in GHC.ST.runST
+        ( let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
+           in let _ = "checkHorizon.noCheck"
+               in let
+                   in let _ = "pushValue"
+                       in let _ = "pushValue"
+                           in do
+                                let dupv = \x -> x
+                                reg <- GHC.STRef.newSTRef dupv
+                                let _ = "iter"
+                                 in let onException loopInput =
+                                          let _ = "onException"
+                                           in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                let _ = "comment: raiseAgainIfConsumed"
+                                                 in let _ = "saveInput checkedHorizon=0"
+                                                     in let _ = "lift2Value checkedHorizon=0"
+                                                         in if ( \( Data.Text.Internal.Text
+                                                                      _
+                                                                      i
+                                                                      _
+                                                                    )
+                                                                  ( Data.Text.Internal.Text
+                                                                      _
+                                                                      j
+                                                                      _
+                                                                    ) -> i GHC.Classes.== j
+                                                               )
+                                                              loopInput
+                                                              failInp
+                                                              then
+                                                                let _ = "choicesBranch checkedHorizon=0"
+                                                                 in do
+                                                                      sr <- GHC.STRef.readSTRef reg
+                                                                      let _ = "pushValue"
+                                                                       in let _ = "lift2Value checkedHorizon=0"
+                                                                           in let _ = "lift2Value checkedHorizon=0"
+                                                                               in let join = \farInp farExp v (!inp) ->
+                                                                                        let _ = "lift2Value checkedHorizon=0"
+                                                                                         in let _ = "resume"
+                                                                                             in finalRet
+                                                                                                  farInp
+                                                                                                  farExp
+                                                                                                  ( let _ = "resume.genCode"
+                                                                                                     in GHC.Show.show (sr GHC.Types . [])
+                                                                                                  )
+                                                                                                  inp
+                                                                                   in let _ = "catch ExceptionFailure checkedHorizon=0"
+                                                                                       in let onException =
+                                                                                                let _ = "onException"
+                                                                                                 in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                                      let _ = "comment: raiseAgainIfConsumed"
+                                                                                                       in let _ = "saveInput checkedHorizon=0"
+                                                                                                           in let _ = "lift2Value checkedHorizon=0"
+                                                                                                               in if ( \( Data.Text.Internal.Text
+                                                                                                                            _
+                                                                                                                            i
+                                                                                                                            _
+                                                                                                                          )
+                                                                                                                        ( Data.Text.Internal.Text
+                                                                                                                            _
+                                                                                                                            j
+                                                                                                                            _
+                                                                                                                          ) -> i GHC.Classes.== j
+                                                                                                                     )
+                                                                                                                    failInp
+                                                                                                                    failInp
+                                                                                                                    then
+                                                                                                                      let _ = "choicesBranch checkedHorizon=0"
+                                                                                                                       in let _ = "comment: eof.fail"
+                                                                                                                           in let failExp = Data.Set.Internal.Bin 1 (Symantic.Parser.Grammar.Combinators.SomeFailure Symantic.Parser.Grammar.Combinators.FailureEnd) Data.Set.Internal.Tip Data.Set.Internal.Tip
+                                                                                                                               in let (#
+                                                                                                                                        farInp,
+                                                                                                                                        farExp
+                                                                                                                                        #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp failInp of
+                                                                                                                                          GHC.Types.LT ->
+                                                                                                                                            (#
+                                                                                                                                              failInp,
+                                                                                                                                              failExp
+                                                                                                                                            #)
+                                                                                                                                          GHC.Types.EQ ->
+                                                                                                                                            (#
+                                                                                                                                              farInp,
+                                                                                                                                              failExp GHC.Base.<> farExp
+                                                                                                                                            #)
+                                                                                                                                          GHC.Types.GT ->
+                                                                                                                                            (#
+                                                                                                                                              farInp,
+                                                                                                                                              farExp
+                                                                                                                                            #)
+                                                                                                                                   in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                                                    else
+                                                                                                                      let _ = "choicesBranch.else"
+                                                                                                                       in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                           in let _ = "comment: negLook"
+                                                                                               in let _ = "catch ExceptionFailure checkedHorizon=0"
+                                                                                                   in let onException =
+                                                                                                            let _ = "onException"
+                                                                                                             in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                                                                                  let _ = "comment: negLook.reset"
+                                                                                                                   in let _ = "loadInput checkedHorizon=0"
+                                                                                                                       in let _ = "checkHorizon.noCheck"
+                                                                                                                           in let _ = "pushValue"
+                                                                                                                               in let _ = "commit"
+                                                                                                                                   in let _ = "resume"
+                                                                                                                                       in join
+                                                                                                                                            farInp
+                                                                                                                                            farExp
+                                                                                                                                            ( let _ = "resume.genCode"
+                                                                                                                                               in GHC.Tuple . ()
+                                                                                                                                            )
+                                                                                                                                            failInp
+                                                                                                       in let _ = "comment: negLook.ahead"
+                                                                                                           in let _ = "saveInput checkedHorizon=0"
+                                                                                                               in let _ = "comment: satisfy ((\\x_0 -> \\x_1 -> x_0) GHC.Types.True)"
+                                                                                                                   in let inp = failInp
+                                                                                                                       in let readFail = onException
+                                                                                                                           in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=1"
+                                                                                                                               in if readMore inp
+                                                                                                                                    then
+                                                                                                                                      let _ = "checkToken"
+                                                                                                                                       in let !(#
+                                                                                                                                                 c,
+                                                                                                                                                 cs
+                                                                                                                                                 #) = readNext inp
+                                                                                                                                           in let _ = "popValue"
+                                                                                                                                               in let _ = "commit"
+                                                                                                                                                   in let _ = "loadInput checkedHorizon=0"
+                                                                                                                                                       in let _ = "checkHorizon.noCheck"
+                                                                                                                                                           in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                                                                                                    else
+                                                                                                                                      let _ = "checkHorizon.newCheck.fail"
+                                                                                                                                       in let failExp =
+                                                                                                                                                Data.Set.Internal.Bin
+                                                                                                                                                  1
+                                                                                                                                                  ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                                                                                      ( case inputToken of
+                                                                                                                                                          (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
+                                                                                                                                                      )
+                                                                                                                                                  )
+                                                                                                                                                  Data.Set.Internal.Tip
+                                                                                                                                                  Data.Set.Internal.Tip
+                                                                                                                                           in let (#
+                                                                                                                                                    farInp,
+                                                                                                                                                    farExp
+                                                                                                                                                    #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp inp of
+                                                                                                                                                      GHC.Types.LT ->
+                                                                                                                                                        (#
+                                                                                                                                                          inp,
+                                                                                                                                                          failExp
+                                                                                                                                                        #)
+                                                                                                                                                      GHC.Types.EQ ->
+                                                                                                                                                        (#
+                                                                                                                                                          farInp,
+                                                                                                                                                          failExp GHC.Base.<> farExp
+                                                                                                                                                        #)
+                                                                                                                                                      GHC.Types.GT ->
+                                                                                                                                                        (#
+                                                                                                                                                          farInp,
+                                                                                                                                                          farExp
+                                                                                                                                                        #)
+                                                                                                                                               in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                              else
+                                                                let _ = "choicesBranch.else"
+                                                                 in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                        loop = \_callerOnReturn callerInput callerOnExceptionStackByLabel ->
+                                          let _ = "pushValue"
+                                           in let _ = "comment: satisfy ((GHC.Classes.==) 'r')"
+                                               in let inp = callerInput
+                                                   in let readFail = onException callerInput
+                                                       in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=1"
+                                                           in if readMore inp
+                                                                then
+                                                                  let _ = "checkToken"
+                                                                   in let !(#
+                                                                             c,
+                                                                             cs
+                                                                             #) = readNext inp
+                                                                       in if (GHC.Classes.==) 'r' c
+                                                                            then
+                                                                              let _ = "lift2Value checkedHorizon=1"
+                                                                               in let _ = "pushValue"
+                                                                                   in let _ = "lift2Value checkedHorizon=1"
+                                                                                       in do
+                                                                                            sr <- GHC.STRef.readSTRef reg
+                                                                                            let _ = "lift2Value checkedHorizon=1"
+                                                                                             in do
+                                                                                                  let dupv = \x -> sr ((GHC.Types.:) 'r' x)
+                                                                                                  GHC.STRef.writeSTRef reg dupv
+                                                                                                  let _ = "jump"
+                                                                                                   in loop (GHC.Err.error "invalid onReturn") cs (Data.Map.Internal.Bin 1 Symantic.Parser.Grammar.Combinators.ExceptionFailure readFail Data.Map.Internal.Tip Data.Map.Internal.Tip)
+                                                                            else
+                                                                              let _ = "checkToken.fail"
+                                                                               in let failExp =
+                                                                                        Data.Set.Internal.Bin
+                                                                                          1
+                                                                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                              ( case inputToken of
+                                                                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureToken 'r'
+                                                                                              )
+                                                                                          )
+                                                                                          Data.Set.Internal.Tip
+                                                                                          Data.Set.Internal.Tip
+                                                                                   in let (#
+                                                                                            farInp,
+                                                                                            farExp
+                                                                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                              GHC.Types.LT ->
+                                                                                                (#
+                                                                                                  inp,
+                                                                                                  failExp
+                                                                                                #)
+                                                                                              GHC.Types.EQ ->
+                                                                                                (#
+                                                                                                  init,
+                                                                                                  failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                                #)
+                                                                                              GHC.Types.GT ->
+                                                                                                (#
+                                                                                                  init,
+                                                                                                  Data.Set.Internal.empty
+                                                                                                #)
+                                                                                       in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                                                else
+                                                                  let _ = "checkHorizon.newCheck.fail"
+                                                                   in let failExp =
+                                                                            Data.Set.Internal.Bin
+                                                                              1
+                                                                              ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                  ( case inputToken of
+                                                                                      (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
+                                                                                  )
+                                                                              )
+                                                                              Data.Set.Internal.Tip
+                                                                              Data.Set.Internal.Tip
+                                                                       in let (#
+                                                                                farInp,
+                                                                                farExp
+                                                                                #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                  GHC.Types.LT ->
+                                                                                    (#
+                                                                                      inp,
+                                                                                      failExp
+                                                                                    #)
+                                                                                  GHC.Types.EQ ->
+                                                                                    (#
+                                                                                      init,
+                                                                                      failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                    #)
+                                                                                  GHC.Types.GT ->
+                                                                                    (#
+                                                                                      init,
+                                                                                      Data.Set.Internal.empty
+                                                                                    #)
+                                                                           in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+                                     in let _ = "jump"
+                                         in loop finalRet init Data.Map.Internal.Tip
+        )
diff --git a/tests/Golden/Splice/G9.expected.txt b/tests/Golden/Splice/G9.expected.txt
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Splice/G9.expected.txt
@@ -0,0 +1,216 @@
+\(input :: inp) ->
+  let !(#
+         init,
+         readMore,
+         readNext
+         #) =
+          let _ = "cursorOf"
+           in let next
+                    ( t@( Data.Text.Internal.Text
+                            arr
+                            off
+                            unconsumed
+                          )
+                      ) =
+                      let !( Data.Text.Unsafe.Iter
+                               c
+                               d
+                             ) = Data.Text.Unsafe.iter t 0
+                       in (#
+                            c,
+                            Data.Text.Internal.Text arr (off GHC.Num.+ d) (unconsumed GHC.Num.- d)
+                          #)
+                  more
+                    ( Data.Text.Internal.Text
+                        _
+                        _
+                        unconsumed
+                      ) = unconsumed GHC.Classes.> 0
+               in (# input, more, next #)
+      finalRet = \_farInp _farExp v _inp -> Symantic.Parser.Machine.Generate.returnST GHC.Base.$ Data.Either.Right v
+      finalRaise ::
+        forall st b.
+        Symantic.Parser.Machine.Generate.OnException
+          st
+          inp
+          b = \(!exn) _failInp (!farInp) (!farExp) ->
+          Symantic.Parser.Machine.Generate.returnST GHC.Base.$
+            Data.Either.Left
+              Symantic.Parser.Machine.Generate.ParsingError
+                { Symantic.Parser.Machine.Generate.parsingErrorOffset = Symantic.Parser.Machine.Input.offset farInp,
+                  Symantic.Parser.Machine.Generate.parsingErrorException = exn,
+                  Symantic.Parser.Machine.Generate.parsingErrorUnexpected =
+                    if readMore farInp
+                      then
+                        GHC.Maybe.Just
+                          ( let (#
+                                  c,
+                                  _
+                                  #) = readNext farInp
+                             in c
+                          )
+                      else GHC.Maybe.Nothing,
+                  Symantic.Parser.Machine.Generate.parsingErrorExpecting =
+                    let ( minHoriz,
+                          res
+                          ) =
+                            Data.Set.Internal.foldr
+                              ( \f
+                                 ( minH,
+                                   acc
+                                   ) -> case Symantic.Parser.Grammar.Combinators.unSomeFailure f of
+                                    GHC.Maybe.Just (Symantic.Parser.Grammar.Combinators.FailureHorizon h :: Symantic.Parser.Grammar.Combinators.Failure (Symantic.Parser.Grammar.Combinators.CombSatisfiable (Symantic.Parser.Machine.Input.InputToken inp)))
+                                      | GHC.Maybe.Just old <- minH ->
+                                        ( GHC.Maybe.Just (GHC.Classes.min old h),
+                                          acc
+                                        )
+                                      | GHC.Base.otherwise ->
+                                        ( GHC.Maybe.Just h,
+                                          acc
+                                        )
+                                    _ ->
+                                      ( minH,
+                                        f GHC.Types.: acc
+                                      )
+                              )
+                              ( GHC.Maybe.Nothing,
+                                GHC.Types . []
+                              )
+                              farExp
+                     in Data.Set.Internal.fromList GHC.Base.$
+                          ( case minHoriz of
+                              GHC.Maybe.Just h -> Symantic.Parser.Grammar.Combinators.SomeFailure (Symantic.Parser.Grammar.Combinators.FailureHorizon @(Symantic.Parser.Machine.Input.InputToken inp) h) GHC.Types.: res
+                              GHC.Maybe.Nothing -> res
+                          )
+                }
+   in GHC.ST.runST
+        ( let inputToken = Data.Proxy.Proxy :: Data.Proxy.Proxy (Symantic.Parser.Machine.Input.InputToken inp)
+           in let _ = "checkHorizon.noCheck"
+               in let
+                   in let _ = "pushValue"
+                       in let join = \farInp farExp v (!inp) ->
+                                let _ = "lift2Value checkedHorizon=0"
+                                 in let _ = "resume"
+                                     in finalRet
+                                          farInp
+                                          farExp
+                                          ( let _ = "resume.genCode"
+                                             in GHC.Show.show v
+                                          )
+                                          inp
+                           in let _ = "catch ExceptionFailure checkedHorizon=0"
+                               in let onException =
+                                        let _ = "onException"
+                                         in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                              let _ = "comment: raiseAgainIfConsumed"
+                                               in let _ = "saveInput checkedHorizon=0"
+                                                   in let _ = "lift2Value checkedHorizon=0"
+                                                       in if ( \( Data.Text.Internal.Text
+                                                                    _
+                                                                    i
+                                                                    _
+                                                                  )
+                                                                ( Data.Text.Internal.Text
+                                                                    _
+                                                                    j
+                                                                    _
+                                                                  ) -> i GHC.Classes.== j
+                                                             )
+                                                            init
+                                                            failInp
+                                                            then
+                                                              let _ = "choicesBranch checkedHorizon=0"
+                                                               in let _ = "comment: eof.fail"
+                                                                   in let failExp = Data.Set.Internal.Bin 1 (Symantic.Parser.Grammar.Combinators.SomeFailure Symantic.Parser.Grammar.Combinators.FailureEnd) Data.Set.Internal.Tip Data.Set.Internal.Tip
+                                                                       in let (#
+                                                                                farInp,
+                                                                                farExp
+                                                                                #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) farInp failInp of
+                                                                                  GHC.Types.LT ->
+                                                                                    (#
+                                                                                      failInp,
+                                                                                      failExp
+                                                                                    #)
+                                                                                  GHC.Types.EQ ->
+                                                                                    (#
+                                                                                      farInp,
+                                                                                      failExp GHC.Base.<> farExp
+                                                                                    #)
+                                                                                  GHC.Types.GT ->
+                                                                                    (#
+                                                                                      farInp,
+                                                                                      farExp
+                                                                                    #)
+                                                                           in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                                            else
+                                                              let _ = "choicesBranch.else"
+                                                               in finalRaise Symantic.Parser.Grammar.Combinators.ExceptionFailure failInp farInp farExp
+                                   in let _ = "comment: negLook"
+                                       in let _ = "catch ExceptionFailure checkedHorizon=0"
+                                           in let onException =
+                                                    let _ = "onException"
+                                                     in \(!_exn) (!failInp) (!farInp) (!farExp) ->
+                                                          let _ = "comment: negLook.reset"
+                                                           in let _ = "loadInput checkedHorizon=0"
+                                                               in let _ = "checkHorizon.noCheck"
+                                                                   in let _ = "pushValue"
+                                                                       in let _ = "commit"
+                                                                           in let _ = "resume"
+                                                                               in join
+                                                                                    farInp
+                                                                                    farExp
+                                                                                    ( let _ = "resume.genCode"
+                                                                                       in GHC.Tuple . ()
+                                                                                    )
+                                                                                    init
+                                               in let _ = "comment: negLook.ahead"
+                                                   in let _ = "saveInput checkedHorizon=0"
+                                                       in let _ = "comment: satisfy ((\\x_0 -> \\x_1 -> x_0) GHC.Types.True)"
+                                                           in let inp = init
+                                                               in let readFail = onException
+                                                                   in let _ = "checkHorizon.newCheck: checkedHorizon=0 minHoriz=1"
+                                                                       in if readMore inp
+                                                                            then
+                                                                              let _ = "checkToken"
+                                                                               in let !(#
+                                                                                         c,
+                                                                                         cs
+                                                                                         #) = readNext inp
+                                                                                   in let _ = "popValue"
+                                                                                       in let _ = "commit"
+                                                                                           in let _ = "loadInput checkedHorizon=0"
+                                                                                               in let _ = "checkHorizon.noCheck"
+                                                                                                   in onException Symantic.Parser.Grammar.Combinators.ExceptionFailure init init Data.Set.Internal.empty
+                                                                            else
+                                                                              let _ = "checkHorizon.newCheck.fail"
+                                                                               in let failExp =
+                                                                                        Data.Set.Internal.Bin
+                                                                                          1
+                                                                                          ( Symantic.Parser.Grammar.Combinators.SomeFailure
+                                                                                              ( case inputToken of
+                                                                                                  (Data.Proxy.Proxy :: Data.Proxy.Proxy tok') -> Symantic.Parser.Grammar.Combinators.FailureHorizon @tok' 1
+                                                                                              )
+                                                                                          )
+                                                                                          Data.Set.Internal.Tip
+                                                                                          Data.Set.Internal.Tip
+                                                                                   in let (#
+                                                                                            farInp,
+                                                                                            farExp
+                                                                                            #) = case (GHC.Classes.compare `Data.Function.on` Symantic.Parser.Machine.Input.offset) init inp of
+                                                                                              GHC.Types.LT ->
+                                                                                                (#
+                                                                                                  inp,
+                                                                                                  failExp
+                                                                                                #)
+                                                                                              GHC.Types.EQ ->
+                                                                                                (#
+                                                                                                  init,
+                                                                                                  failExp GHC.Base.<> Data.Set.Internal.empty
+                                                                                                #)
+                                                                                              GHC.Types.GT ->
+                                                                                                (#
+                                                                                                  init,
+                                                                                                  Data.Set.Internal.empty
+                                                                                                #)
+                                                                                       in readFail Symantic.Parser.Grammar.Combinators.ExceptionFailure inp farInp farExp
+        )
diff --git a/tests/Golden/Utils.hs b/tests/Golden/Utils.hs
new file mode 100644
--- /dev/null
+++ b/tests/Golden/Utils.hs
@@ -0,0 +1,36 @@
+module Golden.Utils where
+
+import Control.Monad (Monad(..))
+import Data.Either (Either(..))
+import Data.Function (($))
+import Data.Semigroup (Semigroup(..))
+import Data.String (String)
+import System.IO (IO, FilePath)
+import System.IO.Unsafe (unsafePerformIO)
+import qualified Data.ByteString.Lazy as BSL
+import qualified Data.IORef as IORef
+
+import qualified Data.Text.Lazy as TL
+import qualified Data.Text.Lazy.Encoding as TL
+import qualified Language.Haskell.TH.Syntax as TH
+import Paths_symantic_parser
+
+getGoldenDir :: FilePath -> FilePath
+getGoldenDir p = unsafePerformIO $ getDataFileName $ "tests/Golden/" <> p
+
+goldenDiff :: FilePath -> FilePath -> [String]
+goldenDiff ref new = ["diff", "-u", "-w", "-B", ref, new]
+
+-- | Resetting 'TH.counter' makes 'makeLetName' deterministic,
+-- except when GHC or executable flags change, like profiling
+-- or even --accept unfortunately,
+-- in those case the golden tests may fail
+-- due to a different numbering of the 'ref' combinators.
+-- Hence 'ShowLetName' is used with 'False' there.
+resetTHNameCounter :: IO ()
+resetTHNameCounter = IORef.writeIORef TH.counter 0
+
+unLeft :: Either String BSL.ByteString -> IO BSL.ByteString
+unLeft lr = case lr of
+  Left err -> return $ TL.encodeUtf8 $ TL.pack err
+  Right a  -> return a
diff --git a/tests/Grammar.hs b/tests/Grammar.hs
new file mode 100644
--- /dev/null
+++ b/tests/Grammar.hs
@@ -0,0 +1,71 @@
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE NoMonomorphismRestriction #-}
+{-# LANGUAGE TypeApplications #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE TemplateHaskell #-}
+{-# OPTIONS_GHC -Wno-missing-signatures #-}
+module Grammar where
+import Data.Char (Char)
+import Data.Function (($))
+import Data.String (String)
+import Text.Show (Show(..))
+import qualified Data.Functor as Functor
+import qualified Parsers.Nandlang
+import qualified Parsers.Brainfuck.SymanticParser.Grammar
+import qualified Language.Haskell.TH.Syntax as TH
+
+import Symantic.Parser
+
+rawGrammars :: Grammarable Char repr => [ObserveSharing TH.Name repr String]
+rawGrammars =
+  [ production show [||show||] <$> g1
+  , production show [||show||] <$> g2
+  , production show [||show||] <$> g3
+  , production show [||show||] <$> g4
+  , production show [||show||] <$> g5
+  , production show [||show||] <$> g6
+  , production show [||show||] <$> g7
+  , production show [||show||] <$> g8
+  , production show [||show||] <$> g9
+  , production show [||show||] <$> g10
+  , production show [||show||] <$> g11
+  , production show [||show||] <$> g12
+  , production show [||show||] <$> g13
+  , production show [||show||] <$> g14
+  , production show [||show||] <$> g15
+  , production show [||show||] <$> g16
+  , production show [||show||] <$> g17
+  , production show [||show||] <$> g18
+  , production show [||show||] <$> g19
+  , production show [||show||] <$> g20
+  ]
+grammars :: Grammarable Char repr => [repr String]
+grammars = (Functor.<$> rawGrammars) $ \g ->
+  observeSharing g
+
+g1 = char 'a'
+g2 = string "abc"
+g3 = many (char 'a')
+g4 = some (string "abcd")
+g5 = some (string "abcd") <* eof
+g6 = traverse char "aa" <|> traverse char "ab"
+g7 = string "aa" <|> string "ab"
+g8 = many (char 'r') <* eof
+g9 = eof
+g10 = char 'a' <|> char 'b'
+g11 = many (char 'a') <* char 'b'
+g12 = many (oneOf ['a', 'b', 'c', 'd']) <* eof
+g13 = Parsers.Brainfuck.SymanticParser.Grammar.grammar @Char @_
+g14 = Parsers.Nandlang.grammar
+g15 = (char 'a' <|> char 'b') <* char 'c'
+g16 = (char 'a' <|> char 'b' <|> char 'c') <* char 'd'
+g17 ::
+  CombApplicable repr =>
+  CombSatisfiable Char repr =>
+  CombRegisterableUnscoped repr =>
+  Referenceable TH.Name repr =>
+  ObserveSharing TH.Name repr (Char, Char)
+g17 = bind (item @Char) (\pc -> production (,) [||(,)||] <$> pc <*> pc)
+g18 = string "abc" <|> string "de"
+g19 = (string "abc" <|> string "de") <|> string "fghi"
+g20 = (tokens "abc" <|> tokens "") *> void (tokens "def")
diff --git a/tests/Main.hs b/tests/Main.hs
new file mode 100644
--- /dev/null
+++ b/tests/Main.hs
@@ -0,0 +1,15 @@
+module Main where
+
+import System.IO (IO)
+import Test.Tasty
+import Golden
+--import HUnit
+
+main :: IO ()
+main = do
+  defaultMain (
+    testGroup ""
+      [ Golden.goldens
+      --, hunits
+      ]
+    )
